Liara NodeJS SDK

ذخیره و نگهداری از فایل‌ها در حجم بالا معمولا کار ساده‌ای نیست. احتمالا به این هم فکر کرده‌اید که اگر تعداد و حجم فایل‌هایتان زیاد شد، باید چه کنید؟ چگونه از فایل‌هایتان فایل پشتیبان تهیه کنید؟ فایل‌های پشتیبان را کجا نگهداری کنید؟

برای حل مشکلاتی که به آن اشاره کردیم، می‌توانید از سرویس ذخیره‌ی فایل ما استفاده کنید. لیارا یکAPIمشابه نمونه‌های خارجی مانندAmazon S3وRackspace Cloud Storageدارد که تمام دغدغه‌های شما برای ذخیره‌ی فایل‌هایتان را حل می‌کند.

توجه داشته باشید که سرویس فایل لیارا، S3-Compatible و یا همان سازگار با S3 است. و این بدین معنی است که شما می‌توانید از کتابخانه‌ها و نرم‌افزارهایی که برای AWS S3 نوشته شده‌اند، برای ارتباط با سرویس فایل لیارا استفاده کنید.

نصب و راه‌اندازی

برای نصبLiara SDKدستور زیر را داخل پروژه‌یتان وارد کنید:

npm install @liara/sdk

و برای راه‌اندازی باید یک نمونه از کلاس Liara ایجاد کنید:

به مقادیر فیلدهایLIARA_ACCESS_KEYوLIARA_SECRET_KEYو همین‌طورLIARA_ENDPOINTاز داخل داشبورد، بخش سرویس فایل می‌توانید دسترسی داشته باشید.

اگر از کتاب‌خانه‌ای استفاده می‌کنید که نیازمند فیلدregionاست، مقدار آن را برابرus-east-1قرار دهید.

آپلود فایل

برای ایجاد و آپلود فایل‌ها باید از متدputObjectاستفاده کنید:

در این نمونه، ما یک فایل با نامfile.txtدر باکتmy-filesایجاد کردیم و محتوای آن را برابرHello World!قرار دادیم. اگر به داشبوردتان در لیارا مراجعه کنید، می‌بینید که این فایل ایجاد شده‌است.

برای آپلود یک فایل می‌توانید از استریم‌ها هم استفاده کنید.

Bucket چیست؟

باکت را اگر معادل مخزن در نظر بگیریم، مخزن و محفظه‌ای برای نگه‌داری پوشه‌ها و فایل‌های شماست. ممکن است شما باکت‌های‌تان را به این شکل ایجاد کنید:

  • images
  • videos
  • docs

و یا ممکن است به ازای هر پروژه، یک باکت ایجاد کنید:

  • chat-app-files
  • my-second-project-files

و یا حتی ترکیبی از این حالت‌ها. باکت‌ها علاوه‌بر این که برای نظم‌دادن به فایل‌ها کاربردی هستند، قابلیت‌هایی مثل سطوح دسترسی به فایل‌ها و پوشه‌های درون آن باکت را می‌توانند فراهم کنند.

سطح دسترسی باکت

همان‌طور که گفته شد، باکت‌ها می‌توانند سطح دسترسی فایل‌های درون خود را مشخص کنند. برای این کار، کافیست که روی تنظیمات باکت که در مقابل نام هر باکت وجود دارد، کلیک کرده و بعدEdit policyرا انتخاب کنید:

Edit bucket policy

در صفحه‌ای که باز می‌شود، می‌توانیدPrefixو یا همان پیشوند مورد نظرتان را وارد کنید و سپس برای آن Prefix باید دسترسی مربوطه که می‌تواند یک از موارد زیر باشد را انتخاب کنید:

  • Read Only: هر کسی می‌تواند این فایل‌ها را مشاهده کند.
  • Write Only: هر کسی می‌تواند این فایل‌ها را تغییر دهد و فایل‌های دیگری را به جای آن‌ها آپلود کند.
  • Read and Write: همه می‌توانند این فایل‌ها را مشاهده و فایل‌های دیگری را به جای آن آپلود کنند.

برای مثال، اگر Prefix را برابر photo و دسترسی را برابر Read Only قرار دهید، همه‌ی فایل‌های این باکت که با نام photo آغاز شوند، از طریق URL مخصوص خودشان در دسترس خواهند بود.

اگر می‌خواهید دسترسی‌ای را روی همه‌ی فایل‌های باکت اعمال کنید، فقط کافیست که که در فیلد Prefix کاراکتر*را قرار دهید تا به عنوان Wild card عمل کرده و شامل همه‌ی فایل‌های داخل باکت شود.

Bucket policies

آدرس فایل‌ها

فایل‌ها با ساختار زیر در دسترس هستند:

https://YOUR_ENDPOINT/YOUR_BUCKET/KEY

برای مثال اگر فایلی را در مسیرuser-12/avatar.pngداخل باکتusersذخیره‌ای کرده‌اید، این فایل درEndpointشما به شکل زیر در دسترس خواهد بود:

https://sawersasdfza.storage.liara.ir/users/user-12/avatar.png