কীভাবে এডাব্লুএস এস 3 বালটির নাম পরিবর্তন করবেন


150

মাইগ্রেশন ইত্যাদির সমস্ত কঠোর পরিশ্রমের পরে, কেবল বুঝতে পারেন যে যদি সিএনএম (যেমন মিডিয়া.এবসি.কম) ব্যবহার করে সামগ্রীটি পরিবেশন করা প্রয়োজন। এটি পুরোপুরি কার্যকর হয় তা নিশ্চিত করার জন্য বালতিটির নাম মিডিয়া.এবসি.com/ এস 3/amazon.com দিয়ে শুরু করা দরকার।

কেবল উপলব্ধি করুন যে এস 3 কনসোল থেকে সরাসরি নাম পরিবর্তন করতে দেয় না।

এই জন্য কাজ করার কোন উপায় আছে?

উত্তর:


104

আমি মনে করি একমাত্র উপায় হ'ল সঠিক নাম সহ একটি নতুন বালতি তৈরি করা এবং তারপরে আপনার সমস্ত জিনিস পুরানো বালতি থেকে নতুন বালতিতে অনুলিপি করা। আপনি আউস সিএলআই ব্যবহার করে এটি করতে পারেন।


2
@navjot উপরের সমাধানের জন্য কোনও চার্জ আছে?
পিত্তরান

@ পাভিট্রন না, এখনও যাবার উপায়
ট্যাশোজ

8
@ ট্যাশো প্যাভিতরান চ্যাঞ্জস নয়, চ্যারেজ সম্পর্কে জিজ্ঞাসা করছিল। আমি যতদূর জানি বালতি আইটেমগুলি অনুলিপি করার জন্য প্রকৃতপক্ষে চার্জ রয়েছে, আমি বিশ্বাস করি প্রতিটি আইটেমের জন্য 1 জিইটি এবং 1 পিট অপারেশন ব্যয়।
সাহসী

5
@ ট্যাশগুলি আসলে এস 3 এর মূল্য নির্ধারণের টেবিলে কপি অপারেশনের জন্য আসলে একটি প্রবেশিকা রয়েছে , এটি আসলে একটি পুট করার মতো একই খরচ (যাতে কোনও অতিরিক্ত জিইটি ব্যয় হয় না)।
সাহসী

3
দ্রষ্টব্য যে আপনি CLI এর মাধ্যমে এটি করতে চান না তাদের জন্য আপনি ওয়েব কনসোলটি ব্যবহার করে কাটা এবং পেস্ট করতে পারেন।
মাহমুফ

241

সমাধান

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

8
এই উত্তরটি গ্রহণযোগ্য উত্তরের সমান, এই পোস্টিংটি কীভাবে এটি করা যায় তার ধাপে উদাহরণ দিয়ে খুব সহায়ক পদক্ষেপ দেয় except (যদিও উদাহরণটি ছোট করা উচিত, যদিও পুরানো বালতি উদাহরণ তৈরি এবং প্রত্যয় ভেরিয়েবল ব্যবহার করার দরকার নেই।) যদিও এই উত্তরের ব্যাখ্যা অংশটি আমাকে সন্তুষ্ট করে না doesn't এটি বলেছে যে এস 3-তে ফোল্ডারের অভাবই কেন এই বিশ্রী প্রক্রিয়াটি প্রয়োজন। যেহেতু মূল প্রশ্নটিতে ফোল্ডারগুলি উল্লেখ করা হয়নি, তাই বুঝতে পারছি না যে এটি কীভাবে এস 3 বালতিগুলির নাম পরিবর্তনের অক্ষমতা ব্যাখ্যা করে।
এল এস

2
এই পদ্ধতির চেষ্টা করে ... কাজ করার জন্য হাজির ... তবে কিছু অদ্ভুত কারণে আমি কোনও আইটেম (চিত্র) দেখতে পারছি না। আমি এস 3 ড্যাশবোর্ডের আইটেমগুলির মাধ্যমে ব্রাউজারের মাধ্যমে নেভিগেট করতে পারি ... তবে ইউআরএল এর মাধ্যমে সেগুলি দেখতে বা ডাউনলোড করতে পারি না। কোন ধারণা কেন? অনুমতিগুলি অভিন্ন বলে মনে হচ্ছে। কিছু বিশেষ অনুমতি জন্য সন্ধান করা আছে?
বিএমস্কি

1
@ দ্বৈততা_ আপনি অনুমতি সম্পর্কে আপনার উত্তর বিজ্ঞপ্তিতে যুক্ত করতে পারেন এবং ফাইলগুলি অনুলিপি করতে পারেন --acl bucket-owner-full-control(সেই উত্তরটির মতো )
Масленков Масленков

1
নোট করুন যে আপনার পাশাপাশি অঞ্চলটিও নির্দিষ্ট করা দরকার, অন্যথায় আপনার নতুন বালতিগুলি ইউএস পূর্ব (উত্তর ভার্জিনিয়া) এ থাকবে। উদাহরণস্বরূপ aws --region ap-southeast-2 s3 mb s3://new-bucket
কোবারবয়

1
যদি আপনার সংস্করণ চালু থাকে তবে সংস্করণগুলির মেয়াদ শেষ করার জন্য আপনার জীবনচক্র পরিচালনা ব্যবহার করা দরকার ... আপাতদৃষ্টিতে: ডকস.আও.স.ম্যাজন
আমাজান

38

সম্ভবত এডাব্লুএস সিএলআই টুলকিটের পরবর্তী সংস্করণটি mvবিকল্পটি সরবরাহ করেছিল ।

$ aws --version
aws-cli/1.15.30 Python/3.6.5 Darwin/17.6.0 botocore/1.10.30

আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে বালতিগুলির নাম পরিবর্তন করছি:

aws s3 mv s3://old-bucket s3://new-bucket --recursive

9
এটি আমার পক্ষে কাজ করেছে। তবে এটি লক্ষ্য করা জরুরী যে new-bucketকমান্ডটি চালানোর আগে প্রথমে তৈরি করতে হবে। এছাড়াও, old-bucketউইলটি খালি হবে তবে মোছা হবে না। আপনি যদি সমস্ত ফাইল স্থানান্তর করার পরে এটি মুছতে চান তবে নিম্নলিখিত কমান্ডটি ব্যবহার করুন (অ্যাঙ্গেল বন্ধনী ছাড়াই):aws s3api delete-bucket --bucket <old-bucket> --region <region id>
মবিন

যদি পুরোনো বালতিটি যে কোনও জায়গায় ব্যবহার করা হয় তবে অবশ্যই বালতিটি অনুলিপি করা, নতুন গন্তব্য সহ পরীক্ষা করা, এবং কেবল তখনই, পুরাতন বালতিটি মুছে ফেলা ভাল practice aws s3 mvআসলে অনুলিপি এবং মুছে ফেলা হয়, তাই আর্থিক ব্যয় একই হওয়া উচিত (আমি মনে করি)।
ঝাঁকুনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.