সমাধান
aws s3 mb s3://[new-bucket]
aws s3 sync s3://[old-bucket] s3://[new-bucket]
aws s3 rb --force s3://[old-bucket]
ব্যাখ্যা
এস 3 এর জন্য কোনও পুনরায় নামকরণ বালতির কার্যকারিতা নেই কারণ প্রযুক্তিগতভাবে এস 3 এ কোনও ফোল্ডার নেই তাই আমাদের বালতিতে প্রতিটি ফাইল পরিচালনা করতে হবে।
উপরের কোডটি ১ টি একটি নতুন বালতি তৈরি করবে, ২. ফাইলের অনুলিপি করুন এবং ৩ টি পুরানো বালতিটি মুছুন। এটাই.
আপনার বালতিতে যদি প্রচুর ফাইল থাকে এবং আপনি ব্যয়গুলি নিয়ে চিন্তিত হন তবে পড়ুন। দৃশ্যের পিছনে যা ঘটে তা হ'ল বালতির মধ্যে থাকা সমস্ত ফাইল প্রথমে অনুলিপি করা হয় এবং তারপরে মুছে ফেলা হয়। আপনার কাছে কয়েক হাজার ফাইল থাকলে এটি একটি তুচ্ছ পরিমাণের প্রয়োজন। অন্যথায় এটি আপনাকে কীভাবে প্রভাবিত করবে তা দেখতে এই উত্তরটি পরীক্ষা করে দেখুন।
উদাহরণ
নিম্নলিখিত উদাহরণে আমরা পুরানো বালতিটি তৈরি এবং পপুলেট করি এবং তারপরে ফাইলগুলিকে নতুনটির সাথে সিঙ্ক করি। AWS কী করে তা দেখতে কমান্ডগুলির আউটপুট পরীক্ষা করুন Check
> # bucket suffix so we keep it unique
> suffix="ieXiy2" # used `pwgen -1 -6` to get this
>
> # populate old bucket
> echo "asdf" > asdf.txt
> echo "yxcv" > yxcv.txt
> aws s3 mb s3://old-bucket-$suffix
make_bucket: old-bucket-ieXiy2
> aws s3 cp asdf.txt s3://old-bucket-$suffix/asdf.txt
upload: ./asdf.txt to s3://old-bucket-ieXiy2/asdf.txt
> aws s3 cp yxcv.txt s3://old-bucket-$suffix/yxcv.txt
upload: ./yxcv.txt to s3://old-bucket-ieXiy2/yxcv.txt
>
> # "rename" to new bucket
> aws s3 mb s3://new-bucket-$suffix
make_bucket: new-bucket-ieXiy2
> aws s3 sync s3://old-bucket-$suffix s3://new-bucket-$suffix
copy: s3://old-bucket-ieXiy2/yxcv.txt to s3://new-bucket-ieXiy2/yxcv.txt
copy: s3://old-bucket-ieXiy2/asdf.txt to s3://new-bucket-ieXiy2/asdf.txt
> aws s3 rb --force s3://old-bucket-$suffix
delete: s3://old-bucket-ieXiy2/asdf.txt
delete: s3://old-bucket-ieXiy2/yxcv.txt
remove_bucket: old-bucket-ieXiy2