একটি নির্দিষ্ট বিন্দুতে একটি সংস্করণযুক্ত এস 3 বালতি পুনরুদ্ধার করুন


16

ধরা যাক আমি আমার বালতিটির জন্য এস 3 সংস্করণ সক্ষম করেছি: http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html

তারপরে, যাক কেউ (উদাহরণস্বরূপ, জুনিয়র কর্মচারী) এস 3 বালতিটি মিস করে (কিছু ফাইল দুর্ঘটনাক্রমে মুছে ফেলা ইত্যাদি)

তারপরে আমি কীভাবে কোনও নির্দিষ্ট বিন্দুতে পুরো সংস্করণ বালতিটি পুনরুদ্ধার করতে পারি? আমি বিশ্বাস করি এটি এস 3 এর এপিআই দেওয়া সম্ভব হবে, তবে কিছু হারিয়ে যাওয়ার ভয়ে (আমি কোনও এডাব্লুএস বিশেষজ্ঞ নই) এর জন্য নিজেকে এই জাতীয় স্ক্রিপ্টটি লিখতে হবে না।

এই সমস্যার কি ভাল সমাধান আছে? আমি আমার রেলস অ্যাপ্লিকেশনের জন্য ইমেজ স্টোর হিসাবে এস 3 বালতিটি ব্যবহার করছি, তাই রুবি-ভিত্তিক এমন কিছু যা আমি একটি রেক টাস্ক হিসাবে ব্যবহার করতে পারি তা আদর্শ হবে।

উত্তর:


17

তুমি ব্যবহার করতে পার s3-pit-restore

টাইম রিস্টোর ইন এস 3 পয়েন্ট হল এমন একটি সরঞ্জাম যা আপনি সময় মতো একটি নির্দিষ্ট বিন্দুতে বালতি বা বালতির সাবসেটটি পুনরুদ্ধার করতে হুবহু ব্যবহার করতে পারেন:

s3-pit-restore --bucket my-bucket --dest my-restored-bucket --timestamp "06-17-2016 23:59:50 +2"

এস 3-পিট-রিস্টোর আসলে কী অফার করে:

  • প্রদত্ত ফাইলের চেয়ে টাইমস্ট্যাম্প সহ সমস্ত ফাইল পুনরুদ্ধার করুন
  • পুরো বালতি বা বালতি উপসর্গ পুনরুদ্ধার করুন
  • দুর্দান্ত সামগ্রিক গতিতে একাধিক ফাইলের সমান্তরাল ডাউনলোড
  • সমান্তরাল কর্মীদের কাস্টমাইজেশন ব্যান্ডউইথ ব্যবহার অনুকূলিত করতে
  • যদি সক্ষম হয় তবে এস 3 বালতি সংস্করণগুলি থেকে বা হিমবাহ থেকে পুনরুদ্ধার করুন

এটি আমার পক্ষে কাজ করে না বলে মনে হচ্ছে। গন্তব্যটি কেবলমাত্র সরঞ্জামের বিবরণ সত্ত্বেও একটি স্থানীয় ডিরেক্টরি তৈরি করে।
আর্থার

আপনি আমার দিন বাঁচিয়েছেন। আমাদের আশ্চর্যজনক সরঞ্জামটি জানানোর জন্য ধন্যবাদ।
সাইবাররসপিরিট

2

যদি আমি ডকুমেন্টেশনটি সঠিকভাবে বুঝতে পারি , আপনি যখন সংস্করণটি ফাইলটি মুছতে সক্ষম করে তখন কেবল "সর্বশেষ" সংস্করণটিকে একটি সংস্করণ নম্বরটিতে ফিরিয়ে দেয়। এটি তবে পুরো বালতিটি পুনরুদ্ধার করার ক্ষমতা দেয় না । এটি এস 3 এর পূর্ববর্তী সংস্করণগুলি আপনার প্রয়োজনের জন্য উপযুক্ত নয় (যেমন, মোছা থেকে পুনরুদ্ধার)।

ঠিক তেমন ক্ষেত্রে অন্য কোথাও একটি ব্যাকআপ রাখুন। স্ট্যাক ওভারফ্লো এর ব্যবহার সম্পর্কে একটি প্রশ্ন / উত্তর রয়েছে s3cmd। আমি নিশ্চিত যে আপনি কোথাও একটি রুবি-ভিত্তিক স্ক্রিপ্ট খুঁজে পেতে পারেন বা আপনার যদি প্রয়োজন হয় তবে সেই সাইটে সহায়তা চাইতে পারেন।


সঠিক। আপনি বালতিতে প্রতিটি পৃথক বস্তুর সংস্করণ করছেন, পুরো বালতি নয়।
EEAA

1
ওহ, আমি সব বুঝতে পারি। যে কারণে আমি বুঝতে পারি যে এটি এত সহজ নয়। আমাকে সম্ভবত বালতিতে থাকা সমস্ত ফাইলকে অতিক্রম করতে হবে, প্রতিটি ফাইলের সংস্করণ সম্পর্কিত তথ্য পেতে হবে এবং তারপরে "প্রত্যাবর্তন" করতে চাইলে সেই তারিখের ভিত্তিতে সঠিক আইটেমটি (এটি উপস্থিত থাকলে) বেছে নেব। এত সহজ না। আমি অ্যামাজনকে এমন একটি সাধারণ ব্যবহারের ক্ষেত্রে কিছু বলার চেষ্টা করেছি, কিন্তু হায়, না ... তাই আমি ভাবছিলাম যে ইতিমধ্যে কেউ এই ক্লান্তিকর স্ক্রিপ্টটি লিখেছেন কিনা। আমি সন্ধান করব s3cmd, তবে আমি এস 3-তে সংস্করণযুক্ত স্ন্যাপশট দেওয়ার মতোও করব।
elsurudo

এই উত্তরে ভুল তথ্য রয়েছে - একটি সাধারণ deleteমুছা চিহ্নিতকারী সন্নিবেশ করায় এবং ভবিষ্যতের অনুরোধগুলি পূর্ববর্তী সংস্করণ নয়, 404 ফেরত দেয়। পুনরুদ্ধার করতে আপনি একটি পুরানো সংস্করণটি একটি নতুন সংস্করণে অনুলিপি করতে পারেন বা আপনি deleteবর্তমান অবজেক্টের একটি নির্দিষ্ট সংস্করণ সহ করতে পারেন - তারপরে ভবিষ্যতের getগুলি দ্বিতীয় থেকে সর্বশেষ সংস্করণ দেওয়া হবে। docs.aws.amazon.com/AmamaSS3/latest/dev/… ন্যায্য হতে পারে, বালতি সংস্করণকরণের চারপাশের ডকুমেন্টটি অস্পষ্ট এবং অভাবজনক হতে পারে ...
আগ্রহী

@ মনে রাখবেন যে এই প্রশ্নের উত্তর প্রায় তিন বছর আগে দেওয়া হয়েছিল ... খুব সম্ভবত তারা ডকুমেন্টেশন আপডেট করেছে। যদিও ভাল ধরা।
নাথান সি

নথির জন্য উল্লিখিত লিঙ্কটি পুনরুদ্ধারের বিষয়ে (সুপার উচ্চ স্তরের পুনরুদ্ধার ভিউ) এবং পরিবর্তিত হয়নি - এবং সত্য কথাটি, এটি মুছে ফেলার বিষয়ে কথা বলতে শুরু করলে এটি কিছুটা বিভ্রান্তির চেয়ে বেশি। কেউ এটি দেখেছেন এবং কেবল "এটির কোনও সংস্করণযুক্ত এস 3 বালতি থেকে কোনও জিনিস মুছে ফেলা মানে পুরানো সংস্করণটি ফেরানো শুরু হবে" - তা ঘটতে পারে তা নিশ্চিত করতে চেয়েছিলেন, তবে আপনাকে বিশেষভাবে বর্তমান সংস্করণটি মুছতে হবে (... / কী) ? সংস্করণআইডি = xyz) এর জন্য ...
আগ্রহী

1

এখানে ভার্শনিংয়ের সাহায্যে আমার বালতিটি ব্যাক আপ বালতি থেকে পুনরুদ্ধার করার জন্য ব্যবহৃত একটি সামান্য পিএইচপি স্ক্রিপ্ট:

ভার্শনিং চালু করে একটি বালতিতে ফিরে যেতে

#CONFIGURATION
export bucket_to_backup='example-of-a-bucket-name';
export backup_bucket='example-of-a-backup-bucket-name'; 
export AWS_ACCESS_KEY_ID=ASDFDSAFADSFDASF;
export AWS_SECRET_ACCESS_KEY=adsfdsaf86adsf5adsf568aadf75ads;
#you will need to download and install the s3cmd tool at the following url:
#http://s3tools.org/
s3cmd --access_key=$AWS_ACCESS_KEY_ID --secret_key=$AWS_SECRET_ACCESS_KEY --recursive sync s3://$bucket_to_backup s3://$backup_bucket;

এই দুটি টাইমস্ট্যাম্পগুলির মধ্যে সংস্করণযুক্ত ফাইলগুলি থেকে ব্যাকআপ পুনরুদ্ধার করুন

export startSnapShotTimeStamp=1427577934;
export endSnapShotTimeStamp=1427577939;
#do the restore with php script
php awsUtil.php sync example-of-a-backup-bucket-name example-of-a-bucket-name $startSnapShotTimeStamp-$endSnapShotTimeStamp

আপনি পিএইচপি স্ক্রিপ্টটি এখানে ডাউনলোড করতে পারেন: http://boulderapps.co/post/backing-up-and-restoring-s3-to-a-versioned- bucket

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.