এডাব্লুএস এস 3 আরএসটি এপিআই এবং এর বিভিন্ন র্যাপার ব্যবহার করে প্রতি অনুরোধে 1000 অবধি অবধি মুছে ফেলার সমর্থন করে। এই পদ্ধতিটি ধরে নিয়েছে যে আপনি যে এস 3 অবজেক্ট কীগুলি মুছতে চান তা জানেন (যা এটি কোনও ধারণার নীতি, কোনও নির্দিষ্ট আকারের বেশি ফাইল ইত্যাদি) হ্যান্ডেল করার জন্য তৈরি করা হয়নি)।
S3 REST এপিআই একক অনুরোধে মুছে ফেলার জন্য 1000 টি পর্যন্ত ফাইল নির্দিষ্ট করতে পারে, যা পৃথক অনুরোধ করার চেয়ে দ্রুত হওয়া দরকার। মনে রাখবেন, প্রতিটি অনুরোধ একটি এইচটিটিপি (এইভাবে টিসিপি) অনুরোধ। সুতরাং প্রতিটি অনুরোধ ওভারহেড বহন করে। আপনাকে কেবলমাত্র অবজেক্টগুলির কীগুলি জানতে এবং একটি HTTP অনুরোধ তৈরি করতে হবে (বা আপনার পছন্দের ভাষাতে একটি মোড়ক ব্যবহার করুন)। এডাব্লুএস এই বৈশিষ্ট্য এবং এর ব্যবহার সম্পর্কে দুর্দান্ত তথ্য সরবরাহ করে । আপনি যে পদ্ধতিতে সর্বাধিক স্বাচ্ছন্দ্যময় তা চয়ন করুন!
আমি ধরে নিচ্ছি আপনার ব্যবহারের ক্ষেত্রে একসাথে মুছে ফেলার জন্য নির্দিষ্ট ব্যবহারকারীদের নির্দিষ্ট কয়েকটি ফাইল নির্দিষ্ট করে users "চিত্রের ফাইলগুলিকে উল্লেখ করে এমন সমস্ত বস্তুর শুদ্ধি" বা "নির্দিষ্ট তারিখের চেয়ে পুরানো সমস্ত ফাইলকে মুছে ফেলুন" (যা আমি বিশ্বাস করি যে এস 3-তে পৃথকভাবে কনফিগার করা সহজ) এর মতো কোনও কাজ শুরু করার পরিবর্তে।
যদি তা হয় তবে আপনি কীগুলি মুছতে হবে তা আপনি জানতে পারবেন। এর অর্থ হ'ল ব্যবহারকারী তাদের ফাইলটি সফলভাবে মুছে ফেলা হয়েছে কিনা সে সম্পর্কে আরও রিয়েল টাইম প্রতিক্রিয়া পছন্দ করবে। নির্ভুল কীগুলির উল্লেখগুলি খুব দ্রুত হওয়ার কথা, কারণ এস 3 অত্যন্ত পরিমাণে ডেটা পরিচালনা করার পরেও দক্ষতার সাথে স্কেল করার জন্য ডিজাইন করা হয়েছিল।
যদি তা না হয় তবে আপনি অ্যাসিঙ্ক্রোনাস এপিআই কলগুলিতে সন্ধান করতে পারেন। তারা এই ব্লগ পোস্টটি থেকে কীভাবে সাধারণভাবে কাজ করবে সে সম্পর্কে কিছুটা পড়তে বা আপনার পছন্দের ভাষায় কীভাবে তা অনুসন্ধান করতে পারেন। এটি মুছে ফেলার অনুরোধটিকে তার নিজস্ব থ্রেড নিতে অনুমতি দেবে এবং বাকী কোডটি ব্যবহারকারীকে অপেক্ষা না করেই কার্যকর করতে পারে ute অথবা, আপনি কোনও কাতারে অনুরোধটি অফলোড করতে পারেন। । । তবে এই দুটি অপশনই অযথা আপনার কোড (অ্যাসিনক্রোনাস কোড বিরক্তিকর হতে পারে) বা আপনার পরিবেশকে জটিল করে তোলে (সারিটি সামলানোর জন্য আপনার কোনও পরিষেবা / ডেমন / ধারক / সার্ভারের প্রয়োজন হবে So সুতরাং যদি সম্ভব হয় তবে আমি এই দৃশ্যটি এড়াতে চাই।
সম্পাদনা: 2 টির বেশি লিঙ্ক পোস্ট করার খ্যাতি আমার নেই। তবে আপনি অনুরোধের হার এবং কার্য সম্পাদনের বিষয়ে অ্যামাজনের মন্তব্যগুলি এখানে দেখতে পাবেন: http://docs.aws.amazon.com/AmazonS3/latest/dev/request-rate-perf-considerations.html এবং s3 ফ্যাক্ট মন্তব্যগুলি যে বাল্ক ডিলেটিটন হ'ল সম্ভব হলে যাওয়ার উপায়
aws s3api list-objects --output text --bucket BUCKET --query 'Contents[].[Key]' | pv -l > BUCKET.keys
এবং তারপরে অবজেক্টগুলি সরানো (এটি পর্যাপ্ত ছিল যে 1 সমান্তরাল প্রক্রিয়া পেরিয়ে অবজেক্ট মোছার হারের সীমাতে পৌঁছে যায়):tail -n+0 BUCKET.keys | pv -l | grep -v -e "'" | tr '\n' '\0' | xargs -0 -P1 -n1000 bash -c 'aws s3api delete-objects --bucket BUCKET --delete "Objects=[$(printf "{Key=%q}," "$@")],Quiet=true"' _