আপনি ভাববেন যে তারা জনসাধারণকে ডিফল্ট আচরণটি পড়তে বাধ্য করবে, তাই না? :) একটি সি # সমাধান থেকে এস 3 এর সাথে ইন্টারফেসে একটি কাস্টম এপিআই তৈরি করার সময় আমি আপনার হতাশাকে ভাগ করেছি। এখানে একটি স্নিপেট যা একটি S3 অবজেক্ট আপলোড করতে এবং এটি ডিফল্টরূপে পাবলিক-পঠিত অ্যাক্সেসে সেট করে lis
public void Put(string bucketName, string id, byte[] bytes, string contentType, S3ACLType acl) {
string uri = String.Format("https://{0}/{1}", BASE_SERVICE_URL, bucketName.ToLower());
DreamMessage msg = DreamMessage.Ok(MimeType.BINARY, bytes);
msg.Headers[DreamHeaders.CONTENT_TYPE] = contentType;
msg.Headers[DreamHeaders.EXPECT] = "100-continue";
msg.Headers[AWS_ACL_HEADER] = ToACLString(acl);
try {
Plug s3Client = Plug.New(uri).WithPreHandler(S3AuthenticationHeader);
s3Client.At(id).Put(msg);
} catch (Exception ex) {
throw new ApplicationException(String.Format("S3 upload error: {0}", ex.Message));
}
}
টোএসিএলস্ট্রিং (এসিএল) ফাংশনটি সর্বজনীন-পঠিত ফেরত দেয় , BASE_SERVICE_URL হল s3.amazonaws.com এবং AWS_ACL_HEADER ধ্রুবকটি এক্স-এমজেজ-এসিএল । প্লাগ এবং ড্রিমমেজেজ স্টাফগুলি সম্ভবত আপনার কাছে অদ্ভুত লাগবে কারণ আমরা আমাদের HTTP যোগাযোগগুলিকে আরও সহজ করার জন্য স্বপ্নের কাঠামোটি ব্যবহার করছি। মূলত আমরা নির্দিষ্ট শিরোলেখগুলির সাথে একটি HTTP PUT করছি এবং প্রতি বিশেষ উল্লেখের জন্য একটি বিশেষ শিরোনাম স্বাক্ষর ( অনুমোদনের শিরোনাম কীভাবে তৈরি করা যায় তার উদাহরণগুলির জন্য এই ডাবস ডক্সে এই পৃষ্ঠাটি দেখুন )।
বিদ্যমান 1000 অবজেক্ট এসিএল পরিবর্তন করতে আপনি স্ক্রিপ্ট লিখতে পারেন তবে তাত্ক্ষণিক সমস্যা সমাধানের জন্য জিইউআই সরঞ্জামটি ব্যবহার করা আরও সহজ। আমি এখন অবধি সবচেয়ে ভাল ব্যবহার করেছি এস 3 এর ক্লাউডবেরি নামক একটি সংস্থা থেকে ; দেখে মনে হচ্ছে তাদের কমপক্ষে একটি পণ্যের জন্য তারা নিখরচায় 15 দিনের পরীক্ষা আছে। আমি কেবল যাচাই করেছি যে এটি আপনাকে একবারে একাধিক অবজেক্ট নির্বাচন করতে এবং প্রসঙ্গ মেনুটির মাধ্যমে তাদের এসিএল সর্বজনীনতে সেট করতে দেয়। মেঘ উপভোগ করুন!