جابجایی فایلها به دارکوب
مقدمه
برخی از کاربران پلتفرم ابری دارکوب در سرویسهای خود فایلهایی را ذخیره میکنند. این فایلها میتوانند فایل استاتیک یا فایل آپلودی کاربران آن سرویس باشند. به این منظور میتوان به شکل لوکال در جایی که سرویس اجرا میشود آنها را نگه داشت یا از یک سرور object storage استفاده کرد. برای مهاجرت به پلتفرم ابری دارکوب به منظور بهرهمندی هر چه بیشتر از این محیط و stateless کردن سرویس، توصیهی ما این است که از object storage استفاده کنید. در این آموزش قصد داریم در مورد انتقال از object storage (مطابق با پروتکل s3) یا فایلهای لوکال به دارکوب صحبت کنیم.
به طور کلی دو مرحله را باید طی کنیم: ۱- ساخت object storage در دارکوب ۲- انتقال دادهها از خارج دارکوب به دارکوب
ساخت object storage در دارکوب
شما به راحتی میتوانید در کنسول دارکوب با چند کلیک یک اپ MinIO بسازید. MinIO یک سرور object storage مطابق با پروتکل s3 است. برای توضیحات بیشتر به مستند مربوطه مراجعه کنید.
انتقال از سرور s3 به دارکوب
پس از ساخت اپ
MinIO
در دارکوب میتوانید دادههای خود را منتقل کنید. برای این کار از ابزار
mc
استفاده میکنیم که یک
CLI
برای ارتباط با
MinIO
است. به کمک
mc
میتوان به
MinIO
یا سرور
s3
دیگر متصل شد و آبجکتهای آن را دید یا تغییر داد. یکی از قابلیتهای آن
mirror
کردن دادههای یک سرور
s3
به سرور
s3
دیگر است. در
این لینک
میتوانید مستندات کامل آن را ببینید.
همچنین برای آشنایی با نحوه نصب و استفاده از
mc
میتوانید به
مستندات رسمی آن
مراجعه کنید.
برای انتقال دادهها با
mc
ابتدا باید برای دو سرور
alias
درست کنیم.
alias
یک اسم است که ما برای هر سرور تعیین میکنیم.
# create alias for darkube minio server
DARKUBE_SERVER_ALIAS=darkube
DARKUBE_SERVER_ADRESS=<darkube-address>
DARKUBE_SERVER_ACCESSKEY=<access-key>
DARKUBE_SERVER_SECRETKEY=<secret-key>
mc alias set $DARKUBE_SERVER_ALIAS $DARKUBE_SERVER_ADRESS $DARKUBE_SERVER_ACCESSKEY $DARKUBE_SERVER_SECRETKEY
# create alias for external minio server
EXTERNAL_SERVER_ALIAS=external
EXTERNAL_SERVER_ADRESS=<external-address>
EXTERNAL_SERVER_ACCESSKEY=<access-key>
EXTERNAL_SERVER_SECRETKEY=<secret-key>
mc alias set $EXTERNAL_SERVER_ALIAS $EXTERNAL_SERVER_ADRESS $EXTERNAL_SERVER_ACCESSKEY $EXTERNAL_SERVER_SECRETKEY
توضیحات:
- متغیرهایی که با
EXTERNAL_SERVER
شروع میشوند برای سرور خارج دارکوب و متغیرهایی که باDARKUBE_SERVER
شروع میشوند برای سرور دارکوب هستند. - متغیرهای
ALIAS
برای ایجاد alias برای سرورهای MinIO هستند. - متغیرهای
ADDRESS
آدرس رسیدن به سرورها را مشخص میکنند. برای سرور دارکوب همان آدرس دامنهای که موقع ساخت اپ انتخاب کردید را وارد کنید (نه آدرس کنسول). این آدرس از بخش «آدرس دامنه» هم قابل مشاهده است. برای سرور خارجی دقت کنید که آدرس آن باید از محل اجرای دستورmc
قابل دسترسی باشد. - متغیرهای
ACCESSKEY
وSECRETKEY
اطلاعات دسترسی به سرورهای MinIO را دارند. در تب «اطلاعات عمومی» میتوانید این اطلاعات را برای سرور دارکوب ببینید. نام کاربری همان access key و رمز عبور همان secret key است.
بعد از تعیین alias باید با استفاده از mirror دادههای سرور خارجی را به دارکوب منتقل کنیم.
mc mirror $EXTERNAL_SERVER_ALIAS $DARKUBE_SERVER_ALIAS
این دو متغیر را در قسمت قبلی مقداردهی کرده بودیم. با این دستور فرایند جابجایی دادهها شروع میشود. بعد از اتمام فرایند میتوانید به آدرس کنسول MinIO در دارکوب مراجعه کرده و از درستی انتقال باکتها اطمینان حاصل کنید.
انتقال فایل به دارکوب
در این قسمت میخواهیم فایلهای لوکال را به MinIO در دارکوب منتقل کنیم. مانند قسمت قبل باید ابتدا alias سرور MinIO دارکوب را بسازیم:
# create alias for darkube minio server
DARKUBE_SERVER_ALIAS=darkube
DARKUBE_SERVER_ADRESS=<darkube-address>
DARKUBE_SERVER_ACCESSKEY=<access-key>
DARKUBE_SERVER_SECRETKEY=<secret-key>
mc alias set $DARKUBE_SERVER_ALIAS $DARKUBE_SERVER_ADRESS $DARKUBE_SERVER_ACCESSKEY $DARKUBE_SERVER_SECRETKEY
دوباره از دستور mirror استفاده خواهیم کرد. باید دستور را جایی اجرا کنیم که دسترسی به فایلهای مورد نظر داشته باشد. این بار به جای سرور خارجی محلی که فایلها در سیستم ذخیره شدهاند را میدهیم:
BUCKET_NAME=bucket1
LOCAL_DIR=<path-tol-local-dir>
mc mb $DARKUBE_SERVER_ALIAS/$BUCKET_NAME
mc mirror $LOCAL_DIR $DARKUBE_SERVER_ALIAS/$BUCKET_NAME
توضیحات:
- برای انتقال فایل باید یک باکت در
MinIO
بسازیم. این کار را میتوان در کنسول
MinIO
هم انجام داد.
دستور
mc mb
یک باکت برای ما میسازد. متغیرBUCKET_NAME
نام این باکت است که به دلخواه میتوانید انتخاب کنید. - متغیر
LOCAL_DIR
مسیر فایلهای لوکال است که به شکل مطلق یا نسبی میتوان داد. - متغیر
DARKUBE_SERVER_ALIAS
را در دستور قبلی مقداردهی کرده بودیم.
بعد از اتمام فرایند میتوانید به آدرس کنسول MinIO در دارکوب مراجعه کرده و از درستی انتقال باکتها اطمینان حاصل کنید.