django

پلتفرم Django

(Django Platform)

اتصال به ذخیره‌سازی ابری

بدون شک اتصال برنامه به یک ذخیره‌سازی ابری مطمئن برای نگهداری و ارائه فایل‌های استاتیک وب‌سایت یا داده‌های آپلود شده توسط کاربران، باعث اطمینان خاطر صاحبان کسب و کار و بهبود عملکرد برنامه‌ می‌شود.

فهرست عناوین:

نصب AWS SDK

از آنجا که ذخیره‌سازی ابری لیارا یک سرویس Object storage سازگار با پروتکل S3 است، شما می‌توانید با استفاده از AWS SDK‌، در زبان‌ها و فریم‌ورک‌های مختلفی این فضای ذخیره‌سازی را مدیریت کنید. حال برای اتصال به ذخیره‌سازی ابری در Django باید با اجرای دستورهای زیر، پکیج boto3 و Django storages را نصب کنید.

pip install boto3
pip install django-storages

تنظیم کلیدها

در مرحله‌ی بعد، به‌منظور امنیت و کنترل راحت‌تر مقادیر باید مشخصات فضای ذخیره‌سازی ابری اعم از کلیدها و آدرس اتصال به این سرویس را در بخش متغیرهای برنامه تنظیم کنید.

LIARA_ENDPOINT=<Liara Bucket Endpoint>
LIARA_BUCKET_NAME=<Bucket Name>
LIARA_ACCESS_KEY=<Access Key>
LIARA_SECRET_KEY=<Secret Key>

پیکربندی فایل‌سیستم

در مرحله‌ی آخر باید فایل settings.py برنامه‌تان را به‌شکل زیر ویرایش کنید:

INSTALLED_APPS = [ 
  ...,
  'storages',
]

AWS_S3_ENDPOINT_URL = "https://" + os.environ.get(LIARA_ENDPOINT)
AWS_STORAGE_BUCKET_NAME = os.environ.get(LIARA_BUCKET_NAME)
AWS_ACCESS_KEY_ID = os.environ.get(LIARA_ACCESS_KEY)
AWS_SECRET_ACCESS_KEY = os.environ.get(LIARA_SECRET_KEY)
AWS_S3_OBJECT_PARAMETERS = {
  'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'static'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

نحوه‌ی استفاده

می‌توان گفت که تغییر خاصی در نحوه‌ی استفاده‌ی شما به‌وجود نخواهد آمد. برای مثال شما می‌توانید با استفاده از قطعه کد زیر، محتوای Contents را در فایلی با نام example.txt قرار داده و آن را در فضای ذخیره‌سازی ابری ذخیره کنید:

from django.core.files.base import ContentFile
from django.core.files.storage import default_storage

path = default_storage.save('/example.txt', ContentFile(b'Contents'))

متوجه شدم، برو گام بعدی!
;