AWS S3 چیست؟ (Simple Storage Service)
سرویس ذخیرهسازی Object Storage آمازون با مقیاسپذیری بالا برای فایل، بکاپ و دادههای استاتیک.
چرا مهم است؟
S3 استاندارد صنعتی برای ذخیره فایل در معماریهای Cloud است؛ اکثر پروژههای واقعی برای Upload، بکاپ و فایلهای استاتیک از آن استفاده میکنند.
تعریف کوتاه
Amazon S3 (Simple Storage Service) سرویس Amazon Web Services برای ذخیره و مدیریت فایل (Object Storage) با مقیاسپذیری بسیار بالاست.
کاربردهای رایج در پروژههای .NET
ذخیره فایلهای Upload کاربران (عکس، PDF و ...) · نگهداری فایلهای Backup · ذخیره فایلهای Log و گزارشها · ذخیره فایلهای استاتیک سایت (CSS، JS، تصاویر) · ذخیره فایلهای پردازششده در Background توسط سرویسها
مفاهیم اصلی S3
Bucket — ظرف اصلی نگهداری فایلها؛ نام Bucket باید در کل AWS یکتا باشد؛ مشابه یک پوشه ریشه در ذخیرهسازی است. Object — هر فایل ذخیرهشده در S3 یک Object است، شامل: Data (محتوای فایل) · Key (نام/مسیر فایل) · Metadata (اطلاعات اضافی)
مثال: bucket-name/images/profile1.jpg
ویژگیهای مهم
- مقیاسپذیری بالا — محدودیت عملی برای تعداد فایلها ندارد؛ مناسب برای سیستمهای Enterprise.
- Durability بالا — طراحیشده برای نگهداری بسیار امن دادهها؛ دادهها در چندین Availability Zone ذخیره میشوند.
- دسترسی کنترلشده — با IAM Policy، Bucket Policy و Access Control List (ACL) میتوان تعیین کرد چه کسی به فایلها دسترسی دارد.
Storage Classها (برای مدیریت هزینه)
| Storage Class | کاربرد |
|---|---|
| Standard | فایلهایی که زیاد استفاده میشوند |
| Intelligent-Tiering | تغییر خودکار بر اساس میزان استفاده |
| Standard-IA | فایلهای کممصرف ولی نیازمند دسترسی سریع |
| Glacier | آرشیو بلندمدت با هزینه بسیار کم |
اتصال به S3 در .NET
معمولاً با پکیج AWSSDK.S3:
var client = new AmazonS3Client();
await client.PutObjectAsync(new PutObjectRequest
{
BucketName = "my-bucket",
Key = "files/test.pdf",
FilePath = "test.pdf"
});
موارد مهم امنیتی
هرگز Access Key را داخل کد قرار ندهید · از IAM Role استفاده کنید · فایلهای Public را محدود کنید · برای دسترسی موقت از Pre-Signed URL استفاده کنید.
Pre-Signed URL چیست؟ یک لینک موقت برای دسترسی به فایل خصوصی، مثلاً: کاربر درخواست دانلود میدهد → Backend یک URL با اعتبار چند دقیقهای میسازد → کاربر فایل را بدون Public کردن Bucket دانلود میکند.
Versioning
نگهداری نسخههای مختلف یک فایل (مثال: report.pdf نسخه ۱، ۲، ۳) — با فعالکردن Versioning میتوان جلوی Override ناخواسته فایلها را گرفت.
نکته کلیدی: S3 برای ذخیرهسازی دادههای غیرساختیافته با مقیاسپذیری بالا مناسب Cloud است — نه جایگزین Database، بلکه مکمل آن برای Upload، بکاپ و فایلهای استاتیک.
خلاصه
- AWS S3 یک سرویس Object Storage با مقیاسپذیری و Durability بسیار بالاست.
- Bucket → Object ساختار اصلی ذخیرهسازی است؛ هر Object شامل Data، Key و Metadata است.
- Storage Class (Standard/IA/Glacier) و Pre-Signed URL هزینه و امنیت دسترسی به فایلها را مدیریت میکنند.
