Skip to main content

جابجایی فایل‌ها به دارکوب

مقدمه

برخی از کاربران پلتفرم ابری دارکوب در سرویس‌های خود فایل‌هایی را ذخیره می‌کنند. این فایل‌ها می‌توانند فایل استاتیک یا فایل آپلودی کاربران آن سرویس باشند. به این منظور می‌توان به شکل لوکال در جایی که سرویس اجرا می‌شود آن‌ها را نگه داشت یا از یک سرور 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 در دارکوب مراجعه کرده و از درستی انتقال باکت‌ها اطمینان حاصل کنید.