اتصال Django به فایل S3
در این بخش می خواهیم آموزش نحوه اتصال Django
به فایل S3
را در هاست جنگو به شما آموزش دهیم. برای متصل کردن Django
به سرویس فایل S3
باید یکسری تغییرات در پروژه خود اعمال کنید که این تغییرات در این صفحه قدم به قدم خدمت شما شرح داده خواهد شد.
نصب AWS SDK
برای استفاده از سرویس فایل S3
ابتدا باید با استفاده از دستور زیر کتابخانه های boto3 و django-storages را در پروژه خود نصب کنید.
pip install boto3
pip install django-storages
تنظیم کلیدها
حالا که کتابخانه مربوط نصب شد، باید مشخصات سرویس فایل S3
خود را با استفاده از ENV
ها به Django
معرفی کنید. که برای اینکار می توانید از طریق قسمت تنظیمات سرویس خود از قسمت متغیر های محیطی چابکان استفاده کنید.
# name : value
ENDPOINT : Bucket-Endpoint
BUCKET_NAME : Bucket-Name
ACCESS_KEY : Access-Key
SECRET_KEY : Secret-Key
پیکربندی تنظیمات
در مرحلهی آخر باید فایل settings.py
برنامهتان را بهشکل زیر ویرایش کنید:
INSTALLED_APPS = [
...,
'storages',
]
AWS_S3_ENDPOINT_URL = os.getenv("ENDPOINT")
AWS_STORAGE_BUCKET_NAME = os.getenv("BUCKET_NAME")
AWS_ACCESS_KEY_ID = os.getenv("ACCESS_KEY")
AWS_SECRET_ACCESS_KEY = os.getenv("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'))