فضای ذخیرهسازی ابری سکو کلود (Object Storage)
نگه داشتن فایل روی دیسک سرور اپ، مقیاسدهی را سخت میکند: هر نمونهی جدید فایلهای بقیه را نمیبیند. با فضای ذخیرهسازی ابری، فایلها یک جای مشترک دارند و اپ فقط آدرس و کلید را میشناسد. API با S3 سازگار است، پس کتابخانهای که امروز استفاده میکنید بدون تغییر کار میکند.
مناسب برای
- فایلهایی که کاربران آپلود میکنند
- تصویر و ویدیوی سایت
- پشتیبان دیتابیس و لاگ
- فایلهای استاتیک و دانلودی
از باکت تا اولین فایل
ساخت باکت
نام و اندازه را انتخاب کنید؛ باکت پیشفرض خصوصی است.
sakoocloud bucket create --name uploads --size 50کلیدها
Access Key و Secret Key مخصوص همین باکت را بگیرید.
sakoocloud bucket credentials <id>اتصال اپ
کلیدها را بهصورت متغیر محیطی به اپ بدهید.
sakoocloud env set BUCKET_ACCESS_KEY=…آپلود
با SDK همیشگی S3 فایل بفرستید و بخوانید.
PutObjectCommand
اتصال با پایتون
boto3 با همین سه تنظیم کار میکند: endpoint، region و آدرسدهی path-style.
import os
import boto3
from botocore.config import Config
s3 = boto3.client(
"s3",
endpoint_url="https://s3.abrstorage.ir",
region_name="ir-thr-1",
aws_access_key_id=os.environ["BUCKET_ACCESS_KEY"],
aws_secret_access_key=os.environ["BUCKET_SECRET_KEY"],
config=Config(s3={"addressing_style": "path"}),
)
s3.upload_file("report.pdf", os.environ["BUCKET_NAME"], "reports/report.pdf")
چه چیزهایی همراهش میآید
سازگار با S3
آدرس endpoint و کلید را به همان SDK فعلی بدهید؛ AWS SDK، boto3، aws-cli، rclone و هر ابزار S3 دیگر کار میکند.
- API سازگار با S3
- آدرسدهی path-style
- endpoint داخل ایران
- مدیریت از کنسول، CLI و API
دسترسی کنترلشده
هر باکت کلید دسترسی خودش را دارد و پیشفرض خصوصی است. برای فایل خصوصی لینک امن دانلود بسازید و کلید را هر وقت لازم شد عوض کنید.
- کلید جدا برای هر باکت
- باکت خصوصی یا خواندن عمومی
- لینک امن دانلود
- چرخش کلید دسترسی
نگهداری مطمئن
با Object Lock فایلها برای مدت نگهداری غیرقابل تغییر میمانند؛ مناسب پشتیبان و سوابقی که نباید پاک شوند.
- Object Lock (WORM) هنگام ساخت
- مناسب پشتیبان دیتابیس
- افزایش اندازهی باکت
- میزبانی در دیتاسنتر داخل ایران
استفادهی مستقیم از مرورگر
با CORS، فرانتاند میتواند فایل را مستقیم در باکت آپلود یا از آن بخواند، بدون عبور از سرور اپ.
- تنظیم CORS از کنسول
- آپلود مستقیم از مرورگر
- آپلود و مدیریت پوشه از کنسول
- سرو فایلهای عمومی سایت
جزئیات فنی
متغیرهای پیشنهادی برای اپ
| متغیر | مقدار |
|---|---|
BUCKET_NAME | نام باکت |
BUCKET_ENDPOINT | https://s3.abrstorage.ir |
BUCKET_REGION | ir-thr-1 |
BUCKET_ACCESS_KEY و BUCKET_SECRET_KEY | از sakoocloud bucket credentials |
تنظیمات باکت
| تنظیم | کجا | توضیح |
|---|---|---|
--public | هنگام ساخت | خواندن عمومی آبجکتها |
--object-lock | فقط هنگام ساخت | نگهداری غیرقابل تغییر (WORM) |
| CORS | کنسول | دسترسی مستقیم از مرورگر |
| چرخش کلید | sakoocloud bucket rotate | کلید جدید، باطل شدن کلید قبلی |
پرسشهای متداول
آبجکت استوریج چیست؟
فضایی برای نگهداری فایلها بهصورت آبجکت در باکتها، که از طریق HTTP و API قابل دسترسی است و به دیسک یک سرور خاص وابسته نیست.
کتابخانهی S3 فعلیام کار میکند؟
بله. endpoint را https://s3.abrstorage.ir، region را ir-thr-1 و آدرسدهی را path-style بگذارید.
چرا خطای checksum یا XAmzContentSHA256Mismatch میگیرم؟
نسخههای جدید AWS SDK و aws-cli بهطور پیشفرض checksum اضافه میفرستند. requestChecksumCalculation را روی WHEN_REQUIRED بگذارید.
فایل خصوصی را چطور در اختیار کاربر بگذارم؟
باکت را خصوصی نگه دارید و برای هر فایل لینک امن موقت بسازید.
اندازهی باکت چقدر میتواند باشد؟
از ۱۰ تا ۲۵۰ گیگابایت هنگام ساخت، و بعداً قابل افزایش است.
برای جزئیات بیشتر مستندات را ببینید یا پلنها را مقایسه کنید.