با خوشحالی انتشار نسخه پیشنمایشی مدیریت انتقالداده Amazon S3 برای Swift را اعلام میکنیم – یک ابزار کمکی سطح بالا برای انتقال فایل و دایرکتوری به سرویس ذخیرهسازی ساده آمازون (Amazon S3) که با استفاده از SDK Swift AWS ساخته شده است. این ابزار بهطور خاص برای تسهیل و افزایش کارایی فرایندهای انتقال داده طراحی شده است.
در این مطلب، نحوه استفاده از مدیریت انتقالداده S3 برای Swift را بررسی خواهیم کرد. هدف اصلی، ارائه یک راهکار سادهتر و قدرتمندتر برای انتقال فایلها به آمازون S3 است که با بهرهگیری از ویژگیهای پیشرفتهی پلتفرم AWS، کارایی و قابلیت اطمینان را افزایش میدهد.
برای عملیات آپلود، مدیریت انتقالداده از API Multipart Upload S3 استفاده میکند. این امر باعث میشود درخواستهای UploadPart به صورت همزمان ارسال شوند و در نتیجه عملکرد بسیار بالایی حاصل گردد. بهعبارتی دیگر، فایلها به قطعات کوچکتر تقسیم شده و انتقال آنها به صورت موازی انجام میپذیرد که زمان آپلود را به طور چشمگیری کاهش میدهد.
شما میتوانید یک نمونه از مدیریت انتقالداده S3 را با تنظیمات پیشفرض ایجاد کنید:
Or you can pass a configuration object to the initializer to customize the S3 Transfer Manager instance, for example:
برای کسب اطلاعات بیشتر در مورد عملکرد هر یک از این تنظیمات، به نظرات مستندسازی S3TransferManagerConfig مراجعه کنید. تنظیم دقیق پارامترها امکان کنترل بیشتری بر نحوه انتقال دادهها را فراهم میکند.
برای آپلود یک فایل به آمازون S3، باید ساختار ورودی UploadObjectInput را ارائه دهید که شامل زیرمجموعهای از ویژگیهای ساختار PutObjectInput و همچنین آرایهای از شنوندگان انتقال (transfer listeners) است. این ساختار باید شامل سطل مقصد (destination bucket)، کلید شیء S3 برای استفاده، و بدنه شیء باشد. بهطور خلاصه، شما اطلاعات دقیقی در مورد محل قرارگیری فایل و محتوای آن را ارائه میدهید.
نکته مهم: شنوندگان انتقال (transfer listeners) به شما امکان نظارت بر پیشرفت آپلود را میدهند و میتوانند برای اهداف مختلفی مانند نمایش درصد تکمیل یا مدیریت خطاها مورد استفاده قرار گیرند. این قابلیت کنترل بیشتری بر فرایند انتقال دادهها به شما میدهد.
امروز با مدیریت انتقالداده S3 جدید شروع کنید و نظرات خود را از طریق صفحه مشکلات GitHub (url: "https://github.com/aws/aws-sdk-swift-s3-transfer-manager.git") برای ما ارسال کنید! بازخورد شما برای بهبود این ابزار بسیار ارزشمند است.
در اینجا نمونه کدی آورده شده که نشاندهنده استفاده از مدیریت انتقال داده در Swift است:
// Creates and uses default S3TM config & S3 client.
let s3tm = try await S3TransferManager()
// Construct UploadObjectInput.
let uploadObjectInput = UploadObjectInput(body: ByteStream.stream(FileStream(try FileHandle(forReadingFrom: URL(string:"file-to-upload.txt")!))), bucket: "destination-bucket", key: "some-key")
از سوی دیگر، استفاده از این ابزار به توسعهدهندگان کمک میکند تا فرآیند آپلود فایلها را سادهتر و کارآمدتر کنند. با استفاده از API Multipart Upload، امکان آپلود فایلهای بزرگ با سرعت بالاتر فراهم شده است.
📌 توجه: این مطلب از منابع بینالمللی ترجمه و بازنویسی شده است.