একটি সম্পূর্ণ এস 3 বালতি ডাউনলোড করছেন?


705

আমি লক্ষ্য করেছি যে AWS ম্যানেজমেন্ট কনসোল থেকে একটি সম্পূর্ণ এস 3 বালতি ডাউনলোড করার বিকল্প নেই বলে মনে হচ্ছে।

আমার একটি বালতিতে সমস্ত কিছু দখল করার কী সহজ উপায় আছে? আমি রুট ফোল্ডারটি সর্বজনীন করার কথা ভাবছিলাম, wgetএগুলি হস্তান্তর করার জন্য এবং তারপরে এটিকে আবার ব্যক্তিগত করে তুলতে চাই তবে এর থেকে সহজ উপায় আছে কিনা তা আমি জানি না।


4
যেহেতু এখানে অনেকে বলেছেন, aws s3 syncসেরা। তবে, কেউ একটি শক্তিশালী বিকল্প নির্দিষ্ট: dryrun। এই বিকল্পটি আপনাকে ব্যবহার করার সময় / থেকে এস 3 এ / ডাউনলোড কী হবে তা দেখার অনুমতি দেয় sync। আপনি যখন স্থানীয় বা এস 3 বালতিতে সামগ্রীটি ওভাররাইট করতে চান না তখন এটি সত্যিই সহায়ক। এটি এভাবেই ব্যবহৃত হয়: aws s3 sync <source> <destination> --dryrunঅনাকাঙ্ক্ষিত পরিবর্তনগুলি আপলোড না করার জন্য আমি বালতিতে নতুন সামগ্রী সরিয়ে দেওয়ার আগে সর্বদা এটি ব্যবহার করি।
পেরিমোশ

উত্তর:


1334

এডাব্লুএস সি এল আই

আরও তথ্যের জন্য " AWS CLI কমান্ড রেফারেন্স " দেখুন।

এডাব্লুএস সম্প্রতি তাদের কমান্ড লাইন সরঞ্জাম প্রকাশ করেছে, যা অনেকটা বোটোর মতো কাজ করে এবং ব্যবহার করে ইনস্টল করা যায়

sudo easy_install awscli

অথবা

sudo pip install awscli

একবার ইনস্টল হয়ে গেলে আপনি সহজেই চালাতে পারবেন:

aws s3 sync s3://<source_bucket> <local_destination>

উদাহরণ স্বরূপ:

aws s3 sync s3://mybucket .

mybucketবর্তমান ডিরেক্টরিতে সমস্ত বস্তু ডাউনলোড করবে ।

এবং আউটপুট হবে:

download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt

এটি ওয়ান-ওয়ে সিঙ্ক ব্যবহার করে আপনার সমস্ত ফাইল ডাউনলোড করবে। আপনি উল্লেখ না করা এটি আপনার বর্তমান ডিরেক্টরিতে বিদ্যমান ফাইলগুলি মুছে ফেলবে না এবং এটি এস 3 এর কোনও ফাইল পরিবর্তন বা মুছবে না। --delete

আপনি এস 3 বালতি থেকে এস 3 বালতি, বা স্থানীয় থেকে এস 3 বালতি সিঙ্ক করতে পারেন।

পরীক্ষা করে দেখুন ডকুমেন্টেশন এবং অন্যান্য উদাহরণ

যেখানে উপরের উদাহরণটি হল একটি পূর্ণ বালতি কীভাবে ডাউনলোড করবেন, আপনি সম্পাদন করে পুনরাবৃত্তভাবে একটি ফোল্ডারও ডাউনলোড করতে পারেন

aws s3 cp s3://BUCKETNAME/PATH/TO/FOLDER LocalFolderName --recursive

এটি বালির মধ্যে PATH/TO/FOLDERডিরেক্টরিতে পুনরাবৃত্তভাবে সমস্ত ফাইল এবং ফোল্ডার কীগুলি ডাউনলোড করতে সিএলআইকে নির্দেশ দেবে BUCKETNAME


223
প্রথমবার চালনার aws configureএবং আপনার যোগ access keyএবং secret access keyপাওয়া যাবে, যা এখানে
এরউইন রুইজাকার্স

12
উইন্ডোজ ইনস্টলারটির জন্য এখানে যান aws.amazon.com/cli । এটি পরিবেশের পরিবর্তনশীল "AWS_ACCESS_KEY_ID" এবং "AWS_SECRET_ACCESS_KEY" থেকে আপনার গোপন কী থেকে অ্যাক্সেস কী আইডি তুলেছে।
ম্যাট বন্ড

7
আমি চেষ্টা করেছি s3cmdএবং Cyberduck, কিন্তু আমার জন্য awscliআমার বালতি থেকে। 70.000 ফাইলগুলি ডাউনলোড করার সবচেয়ে দ্রুততম উপায় ছিল।
আরজেন

11
দয়া করে মনে রাখবেন যে প্রশ্নটি কেবল ডাউনলোড সম্পর্কে জিজ্ঞাসা করার সময়, আমি বিশ্বাস করি যে এই আদেশটি আপনার ডিরেক্টরি এবং এস 3 এর মধ্যে দ্বি-দ্বি সমন্বয় করবে। আপনি যদি কিছু আপলোড করার চেষ্টা করছেন না, তা নিশ্চিত করুন যে বর্তমান ডিরেক্টরিটি খালি রয়েছে।
জেসি ক্রসন

15
@ জেসক্রোসেন এই aws s3 syncআদেশটি কিছু আপলোড করবে না, তবে এটি এস 3 এ উপস্থিত না থাকলে ফাইল স্থানীয়ভাবে মুছে ফেলা হবে। ডকুমেন্টেশন দেখুন ।
Flimm

168

আপনি s3cmdআপনার বালতিটি ডাউনলোড করতে ব্যবহার করতে পারেন :

s3cmd --configure
s3cmd sync s3://bucketnamehere/folder /destination/folder

আপনি কল করতে পারেন এমন আরও একটি সরঞ্জাম রয়েছে rclone। এটি রক্লোন ডকুমেন্টেশনের একটি কোড নমুনা:

rclone sync /home/local/directory remote:bucket

5
এটি বেশ ধীর। বিশেষত যদি আপনি এটি ক্রমান্বয়ে ব্যবহার করার চেষ্টা করেন। এমন কোনও সমাধান রয়েছে যা মাল্টি-থ্রেডযুক্ত যাতে এটি ব্যান্ডউইথকে পরিপূর্ণ করতে পারে?
পিটার লাডা

এর নীচের সমাধানগুলি আরও ভাল, আরও মানক এবং আরও প্ল্যাটফর্মগুলির জন্য উন্মুক্ত
abc123

এটি অনুরোধকারী বকেট প্রদানের জন্য কাজ করে না (দেখুন arxiv.org/help/ulk_data_s3 ) :-(
মার্টিন থোমা

যদি ডাউনলোডের জন্য প্যাটার্ন ম্যাচিং করতে হয় তবে আমি কীভাবে আপনার সমাধানটি ব্যবহার করতে পারি? আমার প্রশ্ন: stackoverflow.com/questions/25086722/...
শ্রীকান্ত Kakani

84

আমি একটি স্থানীয় মেশিনে অ্যামাজন এস 3 ডেটা অনুলিপি করতে কয়েকটি ভিন্ন পদ্ধতি ব্যবহার করেছি s3cmdএবং এখন পর্যন্ত সবচেয়ে সহজ সাইবারডাক্ক

আপনাকে যা করতে হবে তা হ'ল আপনার অ্যামাজন শংসাপত্রগুলি প্রবেশ করানো এবং আপনার বালতি, ফোল্ডার বা ফাইলগুলির কোনও ডাউনলোড, আপলোড, সিঙ্ক করতে সহজ ইন্টারফেস ব্যবহার করা।

Screenshot


দুর্দান্ত কাজ! উইন্ডোজ এবং ম্যাক (জিপিএল) এর জন্য উপলব্ধ।
ক্রাস্টড

সাইবারডাক্ক বেনামে জনসাধারণের ফাইলগুলি ডাউনলোড করাও সহজ করে তোলে - এস 3 সেমিডির কাছে শংসাপত্রের প্রয়োজন বলে মনে হচ্ছে
ক্রিশ্দিস্ট্যান্ড

ট্রান্সমিট নিয়েও দুর্দান্ত কাজ করে।
আনডিস্ট্রাকশন

আমি যখন আমার বালতিটি সংরক্ষণ করার চেষ্টা করছিলাম তখন সিএলআই আমাকে একটি ত্রুটি দিচ্ছিল, এটি পুরোপুরি কাজ করেছিল!
লাজার কুকোলজ

ওহ যে অপ্রত্যাশিত এসেছিল। আমি আগে এফটিপি-র জন্য সাইবারডাক ব্যবহার করেছি, তবে এটি এস 3 সংযোগের আশা করিনি expected একটি দুর্দান্ত ইঙ্গিত জন্য ধন্যবাদ!
jskierbi

51

এটি করার জন্য আপনার কাছে অনেক বিকল্প রয়েছে তবে সেরাটি হ'ল এডাব্লুএস সি এল আই ব্যবহার করছে।

এখানে একটি পদচারণা:

  1. আপনার মেশিনে AWS CLI ডাউনলোড এবং ইনস্টল করুন:

  2. এডাব্লুএস সিএলআই কনফিগার করুন:

    enter image description here

    নিশ্চিত হয়ে নিন যে আপনি বৈধ অ্যাক্সেস এবং গোপন কীগুলি ইনপুট করেছেন যা আপনি অ্যাকাউন্টটি তৈরি করার সময় পেয়েছিলেন।

  3. এস 3 বালতিটি ব্যবহার করে সিঙ্ক করুন:

    aws s3 sync s3://yourbucket /local/path
    

    উপরের কমান্ডে, নিম্নলিখিত ক্ষেত্রগুলি প্রতিস্থাপন করুন:

    • yourbucket >> আপনার এস 3 বালতি যা আপনি ডাউনলোড করতে চান।
    • /local/path >> আপনার স্থানীয় সিস্টেমে পাথ যেখানে আপনি সমস্ত ফাইল ডাউনলোড করতে চান।

আমি এটি সাইবারডাক্কের পরিবর্তে ব্যবহার করেছি, কারণ সাইবারডাডকের ডাউনলোডগুলি শুরু হওয়ার আগে ফাইলগুলি "প্রস্তুত" করা দরকার। বড় আকারের ফাইলগুলির জন্য যা বয়সগুলি গ্রহণ করে বলে মনে হয়েছিল এবং "প্রস্তুতি" আসলে কী করে সে সম্পর্কে আমি তথ্য খুঁজে পাইনি। সিএলআই তাত্ক্ষণিকভাবে ডাউনলোড শুরু করেছে
ট্যাশস

s3://বালতির নামে সেই উপসর্গ আছে তা নিশ্চিত করুন !!! আপনার সাথে aws s3 lsসেই s3://উপসর্গের দরকার নেই তবে আপনার cpকমান্ডের প্রয়োজন ।
সিজমিলিং

43

AWS S3 CLI ব্যবহার করে ডাউনলোড করতে:

aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive

কোড ব্যবহার করে ডাউনলোড করতে, এডাব্লুএস এসডিকে ব্যবহার করুন।

জিইউআই ব্যবহার করে ডাউনলোড করতে সাইবারডাক্ক ব্যবহার করুন।


1
কিছু ফাইল বা ফোল্ডার উপেক্ষা করবেন কীভাবে?
নবীন

1
@ নবীন আপনি কিছু ফাইল বা ফোল্ডার বাদ দিতে এর জন্য ওয়াইল্ডকার্ডের সাথে - অন্তর্ভুক্ত & - অন্তর্ভুক্ত ব্যবহার করতে পারেন: aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt"
ডার্ককেনোবাইট

21

উইন্ডোজের জন্য, এস 3 ব্রাউজারটি আমার সর্বাধিক সহজ উপায়। এটি দুর্দান্ত সফ্টওয়্যার, এবং এটি অ-বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে।


3
আমি কেবল "সমস্ত ফাইলগুলিতে ডাউনলোড করুন ..." বিকল্পটি চেষ্টা করেছি (যা আমি অনুমান করি যে "সম্পূর্ণ এস 3 বালতিটি ডাউনলোড করুন" এর সমান এবং এটি বলেছিল আমার প্রো সংস্করণটি করা দরকার।
জ্যাক উকলেজা

2
আপডেট: তবে আমি বালতিটির মধ্যে একটি সম্পূর্ণ ফোল্ডার ডাউনলোড করতে সক্ষম হয়েছি যা আমার প্রয়োজনের জন্য যথেষ্ট ছিল ...
জ্যাক উকলেজা

হ্যাঁ বিনামূল্যে সংস্করণটি বেশ সীমাবদ্ধ, আপনি সমস্ত নির্বাচন করতে এবং ডাউনলোড করতে পারেন তবে কেবলমাত্র ২ টি যুগপত স্থানান্তরের মধ্যে সীমাবদ্ধ
হেডেন থ্রিং

উবুন্টু 17.1 এবং এস 3 সিএমডি তে পাইথন 3 সমর্থন ত্রুটি পাওয়ার পরে একটি উইন্ডোজ সাধারণ সংস্করণ সন্ধান করা ছিল, এটি ভাল কাজ করেছে।
এডেনকর্বিন

21

আপনি যদি ভিজুয়াল স্টুডিও ব্যবহার করেন তবে ভিজুয়াল স্টুডিওর জন্য " এডাব্লুএস ટૂুলকিট ডাউনলোড করুন

ইনস্টল হওয়ার পরে, ভিজ্যুয়াল স্টুডিওতে যান - এডাব্লুএস এক্সপ্লোরার - এস 3 - আপনার বালতি - ডাবল ক্লিক করুন

উইন্ডোতে আপনি সমস্ত ফাইল নির্বাচন করতে সক্ষম হবেন। রাইট ক্লিক করুন এবং ফাইল ডাউনলোড করুন।



12

আরেকটি বিকল্প যা কিছু ওএস এক্স ব্যবহারকারীদের সহায়তা করতে পারে তা হ'ল ট্রান্সমিট।

এটি একটি এফটিপি প্রোগ্রাম যা আপনাকে আপনার এস 3 ফাইলের সাথে সংযুক্ত করতে দেয়। এবং এটিতে ফাইন্ডারে কোনও এফটিপি বা এস 3 স্টোরেজটিকে ফোল্ডার হিসাবে মাউন্ট করার বিকল্প রয়েছে তবে এটি কেবল সীমিত সময়ের জন্য।


12

@ লাইকের উত্তরটি ভাল, তবে আপনার কাছে যদি একটি টন ডেটা থাকে এবং চিরকালের জন্য অপেক্ষা করতে না চান, আপনার " AWS CLI S3 কনফিগারেশন " পড়তে হবে ।

নিম্নলিখিত কমান্ডগুলি AWS CLI কে চাকরী সম্পাদনের জন্য 1000 টি থ্রেড (প্রতিটি ছোট ফাইল বা একাধিক অংশের অনুলিপিটির একাংশ) ব্যবহার করতে এবং 100,000 কাজ দেখার জন্য বলবে:

aws configure set default.s3.max_concurrent_requests 1000
aws configure set default.s3.max_queue_size 100000

এগুলি চালানোর পরে, আপনি সাধারণ syncকমান্ডটি ব্যবহার করতে পারেন :

aws s3 sync s3://source-bucket/source-path s3://destination-bucket/destination-path

অথবা

aws s3 sync s3://source-bucket/source-path c:\my\local\data\path

সিপিইউ 4 কোর এবং 16 জিবি র‌্যামযুক্ত সিস্টেমে মাইনের মতো ক্ষেত্রে (3-50 জিবি ফাইল) সিঙ্ক / কপির গতি প্রায় 9.5MiB / s থেকে 700 + MiB / s এ চলে গেছে, ডিফল্ট কনফিগারেশনের চেয়ে 70x গতি বৃদ্ধি পেয়েছে।


1
এটিই আসল উত্তর। কেবল এটি পরীক্ষা করা হয়েছে, ইক্য 2 থেকে এটি প্রায় 2.3 জিবি / মিনিট স্থানান্তরিত করে। 1GB / মিনিট সম্পর্কে সমবর্তী বিকল্পগুলি ছাড়াই options রক্ষাকর্তা।
কার্স্টেন

9

আমি এস 3 এর জন্য কিছুটা বিকাশ করেছি এবং পুরো বালতিটি ডাউনলোড করার সহজ উপায় আমি খুঁজে পাইনি।

আপনি জাভাতে কোড করতে চাইলে বালতিগুলির একটি তালিকা তৈরি করতে ও সেগুলি ডাউনলোড করার জন্য জেটস 3 টি লাইব ব্যবহার করা সহজ।

প্রথমে, এডাব্লুএস ম্যানেজমেন্ট কনসুল থেকে একটি সরকারী বেসরকারী কী সেট পান যাতে আপনি একটি এস 3 সার্ভিস অবজেক্ট তৈরি করতে পারেন:

AWSCredentials awsCredentials = new AWSCredentials(YourAccessKey, YourAwsSecretKey);
s3Service = new RestS3Service(awsCredentials);

তারপরে, আপনার বালতি বস্তুগুলির একটি অ্যারে পান:

S3Object[] objects = s3Service.listObjects(YourBucketNameString);

অবশেষে, একবারে একবারে একবারে জিনিসগুলি ডাউনলোড করতে সেই অ্যারের উপরে পুনরাবৃত্তি করুন:

S3Object obj = s3Service.getObject(bucket, fileName);
            file = obj.getDataInputStream();

আমি সংযোগের কোডটি একটি থ্রেডসেফ সিঙ্গলটনে রেখেছি। প্রয়োজনীয় চেষ্টা / ক্যাচ সিনট্যাক্স স্পষ্ট কারণে বাদ দেওয়া হয়েছে।

আপনি যদি পাইথনে কোডিং করেন তবে আপনি তার পরিবর্তে বোটো ব্যবহার করতে পারেন।

বকেটএক্সপ্লোরারের আশেপাশে দেখার পরে, " পুরো বালতিটি ডাউনলোড করা " আপনি যা চান তা করতে পারে।


আপনার জাভা সমাধানের প্রয়োজন না হলে উপরের অ্যাউস ক্লিপ উত্তরটি ব্যবহার করুন।
jeremyjjbrown 15

একটি নতুন ফোল্ডার তৈরি করুন এবং তেমনি এক
জিসন

7

AWS sdk API কেবলমাত্র পুরো ফোল্ডার এবং s3 এ রেপো আপলোড এবং স্থানীয়ভাবে এস 3 এর পুরো বালতি ডাউনলোড করার জন্য সেরা বিকল্প will

সম্পূর্ণ ফোল্ডারটি এস 3 এ আপলোড করার জন্য

aws s3 sync . s3://BucketName

স্থানীয়ভাবে পুরো এস 3 বালতি ডাউনলোড করার জন্য

aws s3 sync s3://BucketName . 

আপনি এস 3 তে নির্দিষ্ট ফোল্ডারের জন্য বুকিটনাম / পাথের মতো পথও নির্ধারণ করতে পারেন


6

আপনি https://github.com/minio/mc দিয়ে এটি করতে পারেন :

mc cp -r https://s3-us-west-2.amazonaws.com/bucketName/ localdir

এমসি সেশনস, পুনরায় শুরুযোগ্য ডাউনলোডগুলি, আপলোডগুলি এবং আরও অনেকগুলি সমর্থন করে। mcলিনাক্স, ওএস এক্স এবং উইন্ডোজ অপারেটিং সিস্টেমগুলিকে সমর্থন করে। গোলাংয়ে লেখা এবং অ্যাপাচি সংস্করণ ২.০ এর অধীনে প্রকাশিত।


5

আপনি যদি এস 3 ফক্স সহ ফায়ারফক্স ব্যবহার করেন, তবে এটি আপনাকে সমস্ত ফাইল নির্বাচন করতে দেয় (প্রথম এবং শেষ দিকে শিফট-নির্বাচন করুন) এবং রাইট ক্লিক ক্লিক করুন এবং সমস্ত ডাউনলোড করুন ... আমি 500+ ফাইল ডাব্লু / ও সমস্যা নিয়ে এটি করেছি


এটি বালতিতে সাবফোল্ডারগুলির জন্য কাজ করে না, এমনকি যদি "সিউডো ফোল্ডারগুলি" এডাব্লুএস কনসোলে তৈরি করা হয়েছিল। (এই মন্তব্য লেখার হিসাবে)
ওয়েসলি

নিশ্চিত নয় যে কাজ করছে, আমার কাছে প্রায় 12 ক শীর্ষ স্তরের কীগুলি = সাবফোল্ডার রয়েছে), এস 3 ফক্স এমনকি শুরুও করে না। সমস্ত বালতি তালিকাভুক্তির জন্যও জেদ করুন!
পিটার লাডা

4

যখন উইন্ডোজ থাকে তখন এর জন্য আমার পছন্দসই জিইউআই সরঞ্জামটি এস 3 এর জন্য ক্লাউডবেরি এক্সপ্লোরার। Http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx । মোটামুটি পালিশ করা ফাইল এক্সপ্লোরার, এফটিপি-এর মতো ইন্টারফেস রয়েছে।


3

যদি আপনার কেবলমাত্র ফাইল থাকে (কোনও সাব-ডিরেক্টরি নেই) একটি দ্রুত সমাধান হ'ল সমস্ত ফাইল ( clickপ্রথমটিতে, Shift+clickশেষের দিকে) নির্বাচন করে হিট করুন Enterবা right clickনির্বাচন করুন Open। বেশিরভাগ ডেটা ফাইলের জন্য এটি এগুলি সরাসরি আপনার কম্পিউটারে ডাউনলোড করবে।


3

অন্য একটি জিইউআই বিকল্প যুক্ত করতে, আমরা উইনসিসিপির এস 3 কার্যকারিতা ব্যবহার করি । এটি সংযোগ করা খুব সহজ, কেবলমাত্র ইউআইতে আপনার অ্যাক্সেস কী এবং গোপন কী প্রয়োজন। তারপরে আপনি নেস্টেড ফোল্ডারগুলির পুনরাবৃত্ত ডাউনলোডগুলি সহ যে কোনও অ্যাক্সেসযোগ্য বালতিগুলি থেকে আপনার প্রয়োজনীয় ফাইলগুলি ব্রাউজ এবং ডাউনলোড করতে পারেন।

যেহেতু সুরক্ষার মাধ্যমে নতুন সফ্টওয়্যার সাফ করা একটি চ্যালেঞ্জ হতে পারে এবং উইনসিসিপি মোটামুটি প্রচলিত, তাই আরও বেশি বিশেষায়িত ইউটিলিটি ইনস্টল করার চেষ্টা না করে কেবল এটি ব্যবহার করা সত্যই উপকারী হতে পারে।


1
  1. উইন্ডোজ ব্যবহারকারীর এই লিঙ্কটি থেকে S3EXPLORER ডাউনলোড করতে হবে যার ইনস্টলেশন সংক্রান্ত নির্দেশাবলী রয়েছে: - http://s3browser.com/download.aspx

  2. তারপরে সিক্রেটকি, অ্যাক্সেসকি এবং অঞ্চলের মতো আপনাকে এসডাব্লুএসের শংসাপত্র সরবরাহ করুন, এই লিঙ্কটিতে এস 3 এক্সপ্লোরারের জন্য কনফিগারেশন নির্দেশ রয়েছে: ব্রোভারে পেস্ট লিঙ্কটি অনুলিপি করুন: s3browser.com/s3browser-first-run.aspx

  3. এখন আপনার সমস্ত এস 3 বালতি এস 3 এক্সপ্লোরারের বাম প্যানেলে দৃশ্যমান হবে।

  4. কেবল বালতিটি নির্বাচন করুন এবং উপরের বাম কোণে বালতি মেনুতে ক্লিক করুন, তারপরে মেনু থেকে সমস্ত ফাইল ডাউনলোড করতে নির্বাচন করুন। নীচে এর জন্য স্ক্রিনশট রয়েছে:

বালতি নির্বাচনের স্ক্রিন

  1. তারপরে কোনও নির্দিষ্ট জায়গায় বালতিটি ডাউনলোড করতে একটি ফোল্ডার ব্রাউজ করুন

  2. ওকে ক্লিক করুন এবং আপনার ডাউনলোড শুরু হবে।


1

অ্যাউস সিঙ্ক হ'ল সঠিক সমাধান। এটি দুটি উপায় করে না .. এটি উত্স থেকে গন্তব্যের এক পথ। এছাড়াও, যদি আপনার বালতিতে প্রচুর আইটেম থাকে তবে প্রথমে এস 3 এন্ডপয়েন্ট তৈরি করা ভাল ধারণা হবে যাতে ডাউনলোডটি দ্রুত ঘটে (কারণ ডাউনলোড ইন্টারনেটের মাধ্যমে হয় না তবে ইন্ট্রনেটের মাধ্যমে হয়) এবং কোনও চার্জ নেই no


1

সমস্ত বালতি ডাউনলোড করার জন্য তাদের তালিকাবদ্ধ করতে, তাদের বিষয়বস্তু তালিকাভুক্ত করার জন্য এখানে কিছু স্টাফ রয়েছে।

    //connection string
    private static void dBConnection() {
    app.setAwsCredentials(CONST.getAccessKey(), CONST.getSecretKey());
    conn = new AmazonS3Client(app.getAwsCredentials());
    app.setListOfBuckets(conn.listBuckets());
    System.out.println(CONST.getConnectionSuccessfullMessage());
    }

    private static void downloadBucket() {

    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            app.setBucketKey(objectSummary.getKey());
            app.setBucketName(objectSummary.getBucketName());
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                //DOWNLOAD
                try 
                {
                    s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
                    s3Client.getObject(
                            new GetObjectRequest(app.getBucketName(),app.getBucketKey()),
                            new File(app.getDownloadedBucket())
                            );
                } catch (IOException e) {
                    e.printStackTrace();
                }

                do
                {
                     if(app.getBackUpExist() == true){
                        System.out.println("Converting back up file");
                        app.setCurrentPacsId(objectSummary.getKey());
                        passIn = app.getDataBaseFile();
                        CONVERT= new DataConversion(passIn);
                        System.out.println(CONST.getFileDownloadedMessage());
                    }
                }
                while(app.getObjectExist()==true);

                if(app.getObjectExist()== false)
                {
                    app.setNoObjectFound(true);
                }
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
}

/ ---------------------------- এক্সটেনশন পদ্ধতি ------------------- ------------------ /

//Unzip bucket after download 
public static void unzipBucket() throws IOException {
    unzip = new UnZipBuckets();
    unzip.unZipIt(app.getDownloadedBucket());
    System.out.println(CONST.getFileUnzippedMessage());
}

//list all S3 buckets
public static void listAllBuckets(){
    for (Bucket bucket : app.getListOfBuckets()) {
        String bucketName = bucket.getName();
        System.out.println(bucketName + "\t" + StringUtils.fromDate(bucket.getCreationDate()));
    }
}

//Get the contents from the auto back up bucket
public static void listAllBucketContents(){     
    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                System.out.println(objectSummary.getKey() + "\t" + objectSummary.getSize() + "\t" + StringUtils.fromDate(objectSummary.getLastModified()));
                app.setBackUpCount(app.getBackUpCount() + 1);   
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
    System.out.println("There are a total of : " + app.getBackUpCount() + " buckets.");
}

}



1

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

অতএব, আমি সবসময় এই উদ্দেশ্যে AWS CLI ব্যবহার করার পরামর্শ দিই । আপনি এই লিঙ্কটি থেকে সহজেই এটি ইনস্টল করতে পারেন । এরপরে, নিম্নলিখিত কমান্ডটি চালনা করুন এবং আপনার কী, গোপনীয় মানগুলি এডাব্লুএস সি এল এলিতে সংরক্ষণ করুন।

aws configure

এবং আপনার স্থানীয় মেশিনে আপনার AWS S3 বালতি সিঙ্ক করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন। (স্থানীয় মেশিনে AWS CLI ইনস্টল করা উচিত)

aws s3 sync <source> <destination>

উদাহরণ:

1) স্থানীয় স্টোরেজ থেকে এডাব্লুএস এস 3 এর জন্য

aws s3 sync <S3Uri> <LocalPath>

2) লোকাল স্টোরেজ থেকে এডাব্লুএস এস 3 এ

aws s3 sync <LocalPath> <S3Uri>

3) এডাব্লুএস এস 3 বালতি থেকে অন্য বালতিতে

aws s3 sync <S3Uri> <S3Uri> 

উদাহরণস্বরূপ 3, আমি কি অন্য বালতি ফোল্ডারে একটি বালতি ফোল্ডারটি নির্দেশ করতে পারি? আসলে, আমি একটি বালতি ফোল্ডারটি অন্য বালতি ফোল্ডারে সিঙ্ক করতে চাই।
lukai

@ লুকাই হ্যাঁ আমি উদাহরণ 3 এ যা
দিয়েছি তা আপনার

1

আপনি যদি কেবল ডাব্লুএসএস থেকে বালতিটি ডাউনলোড করতে চান তবে প্রথমে আপনার মেশিনে AWS CLI ইনস্টল করুন। টার্মিনালে আপনি ফাইলগুলি ডাউনলোড করতে এবং এই আদেশটি চালাতে চান সেখানে ডিরেক্টরিটি পরিবর্তন করুন।

aws s3 sync s3://bucket-name .

আপনি যদি স্থানীয় এবং এস 3 ডিরেক্টরি উভয়ই সিঙ্ক করতে চান (যদি আপনি স্থানীয় ফোল্ডারে কিছু ফাইল যুক্ত করেছেন), এই কমান্ডটি চালান:

aws s3 sync . s3://bucket-name

1

স্থানীয়ভাবে একটি সম্পূর্ণ এস 3 বালতি ডাউনলোড করার জন্য অ্যাডাব্লুএস সি এল আই হ'ল সেরা বিকল্প।

  1. AWS CLI ইনস্টল করুন

  2. ডিফল্ট সুরক্ষা শংসাপত্র এবং ডিফল্ট AWS অঞ্চল ব্যবহার করার জন্য AWS CLI কনফিগার করুন C

  3. পুরো এস 3 বালতি ব্যবহার করতে কমান্ডটি ব্যবহার করুন

    aws s3 sync s3: // yourbucketname লোকালপথ

বিভিন্ন এডাব্লুএস পরিষেবাগুলির জন্য এডাব্লুএস ক্লায়েন্ট ব্যবহারের রেফারেন্স: https://docs.aws.amazon.com/cli/latest/references/


1

স্থানীয় ফোল্ডারে পুরো এস 3 বালতি সামগ্রী ডাউনলোড করতে আপনি এই এডাব্লুএস ক্লাইম কমান্ডটি ব্যবহার করতে পারেন

aws s3 sync s3://your-bucket-name "Local Folder Path"

আপনি যদি এর মতো ত্রুটি দেখতে পান

fatal error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

--no-যাচাই করা-এসএসএল (বুলিয়ান)

ডিফল্টরূপে, AWS পরিষেবাদিগুলির সাথে যোগাযোগ করার সময় AWS CLI SSL ব্যবহার করে। প্রতিটি এসএসএল সংযোগের জন্য, এডাব্লুএস সিএলআই এসএসএল শংসাপত্রগুলি যাচাই করবে। এই বিকল্পটি SSL শংসাপত্রগুলি যাচাই করার ডিফল্ট আচরণকে ওভাররাইড করে। উল্লেখ

--No-যাচাই-এসএসএল কমান্ড সহ এই ট্যাগটি ব্যবহার করুন

aws s3 sync s3://your-bucket-name "Local Folder Path" --no-verify-ssl

এর ব্যবহারটি s3 syncইতিমধ্যে একাধিকবার উপরে isাকা রয়েছে। + --no-verify-sslএর সুরক্ষা পরিণতি ব্যাখ্যা না করে ব্যবহারের পরামর্শ দেওয়া একটি অপরাধ।
মার্টিন প্রিক্রিল

সুরক্ষা সম্পর্কে তথ্যের জন্য ধন্যবাদ। আমি এই বিষয় সম্মুখীন এবং এই রেফারেন্স ব্যবহার করে এটি সমাধান করা docs.aws.amazon.com/cli/latest/reference
Dimuthu

1

বালতিটি বেশ বড় হলে একটি কমান্ড বলা হয় s4cmd যা সমান্তরাল সংযোগ তৈরি করে এবং ডাউনলোডের সময়কে উন্নত করে:

এটি ডেবিয়ানের মতো ইনস্টল করতে

apt install s4cmd

আপনার যদি পাইপ থাকে:

pip install s4cmd

এটি ~/.s3cfgউপস্থিত থাকলে ফাইলটি পড়বে (যদি ইনস্টল না করে s3cmdচালিত হয় তবে)s3cmd --configure ) বা আপনি --access-key=ACCESS_KEY --secret-key=SECRET_KEYআদেশটি নির্দিষ্ট করতে পারেন ।

জলবায়ু অনুরূপ s3cmd। আপনার ক্ষেত্রে syncএটিকে সুপারিশ করা হয় কারণ আপনি ডাউনলোডগুলি বাতিল করতে এবং ফাইলগুলি পুনরায় ডাউনলোড না করেই এটি আবার শুরু করতে পারেন।

s4cmd [--access-key=ACCESS_KEY --secret-key=SECRET_KEY] sync s3://<your-bucket> /some/local/dir

আপনি প্রচুর ডেটা ডাউনলোড করলে সতর্ক হন (> 1 টিবি) এটি আপনার বিলে প্রভাব ফেলতে পারে, প্রথমে গণনা করুন যা ব্যয় হবে


0

যেমন @ লেলেক বলেছেন, এস 3 ক্লাইম থেকে ফাইলটি ডাউনলোড করা সর্বোত্তম অনুশীলন এটি নিরাপদ এবং সুরক্ষিত। তবে কিছু ক্ষেত্রে, ফাইলগুলি ডাউনলোড করতে লোককে উইজেট ব্যবহার করতে হবে এবং সমাধানটি এখানে

aws s3 presign s3://<your_bucket_name/>

এটি প্রেসাইনে আপনাকে অস্থায়ী পাবলিক ইউআরএল পাবে যা আপনি উইজেট বা অন্য কোনও ডাউনলোড ক্লায়েন্ট ব্যবহার করে প্রেজাইন_আরল ব্যবহার করে এস 3 থেকে সামগ্রী ডাউনলোড করতে ব্যবহার করতে পারেন।


0

এই আদেশটি ব্যবহার করে দেখুন:

aws s3 sync yourBucketnameDirectory yourLocalDirectory

উদাহরণস্বরূপ, যদি আপনার বালতির নাম হয় myBucketএবং স্থানীয় ডিরেক্টরি হয় c:\localতবে:

aws s3 sync s3://myBucket c:\local

Awscli সম্পর্কে আরও তথ্যের জন্য এই ক্লাব ইনস্টলেশনটি পরীক্ষা করে দেখুন

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