আমি কীভাবে একটি অ্যামাজন এস 3 বালতির আকার পেতে পারি?


289

আমি একটি অ্যামাজন এস 3 বালতির আকার (বাইট এবং # আইটেমগুলিতে) গ্রাফ করতে চাই এবং ডেটা পাওয়ার একটি কার্যকর উপায় খুঁজছি।

এস 3 সিএমডি সরঞ্জামগুলি মোট ফাইল আকার ব্যবহার করে একটি উপায় সরবরাহ করে s3cmd du s3://bucket_nameতবে আমি এটির স্কেল করার ক্ষমতা সম্পর্কে চিন্তিত যেহেতু দেখে মনে হচ্ছে এটি প্রতিটি ফাইলের ডেটা এনেছে এবং তার নিজস্ব যোগফল গণনা করে। যেহেতু অ্যামাজন ব্যবহারকারীগণকে জিবি-মাসগুলিতে চার্জ করে তাদের কাছে এটি বেআইনী মনে হয় যে তারা এই মানটি সরাসরি প্রকাশ করে না।

যদিও অ্যামাজনের আরএসটি এপিআই একটি বালতিতে আইটেমের সংখ্যা ফিরিয়ে দিয়েছে, এস 3 সেমিডি এটি প্রকাশ করবে বলে মনে হয় না। আমি করতে পারি s3cmd ls -r s3://bucket_name | wc -lতবে হ্যাকের মতো মনে হচ্ছে।

রুবি এডাব্লুএস :: এস 3 গ্রন্থাগারটি আশাব্যঞ্জক মনে হলেও কেবল বালতি আকারের নয়, বালতি আকারের # টি সরবরাহ করে।

অন্য কোনও কমান্ড লাইনের সরঞ্জাম বা লাইব্রেরি (পার্ল, পিএইচপি, পাইথন বা রুবি পছন্দ করুন) যা এই ডেটা পাওয়ার উপায় সরবরাহ করে সে সম্পর্কে কি কেউ সচেতন?


আমি বালতির আকারের বিশ্লেষণের জন্য একটি সরঞ্জাম লিখেছি: github.com/EverythingMe/ncdu-s3
omribahumi

19
আমি অবাক হয়েছি যে স্থানটির জন্য অ্যামাজন চার্জ করে, তবে কেবল এস 3 প্যানেলের মাধ্যমে কোনও এস 3 বালতি তোলা মোট আকার সরবরাহ করে না।
লুক

আমার জন্য নীচের বেশিরভাগ উত্তরগুলি বালতি আকারটি পুনরুদ্ধার করতে বেশ দীর্ঘ সময় নিয়েছে, তবে এই অজগর লিপিটি বেশিরভাগ উত্তরের চেয়ে দ্রুত গতিতে ছিল - slsmk.com/getting-the-size-of-an-s3-bucket- using -বোটো-ফর-
অ্যাউজ

উত্তর:


168

AWS CLI এখন --queryপ্যারামিটার সমর্থন করে যা একটি JMESPath এক্সপ্রেশন নেয় ।

এর অর্থ আপনি list-objectsব্যবহার sum(Contents[].Size)এবং পছন্দ মতো গণনা করে দেওয়া আকারের মানগুলি যোগ করতে পারেন length(Contents[])

এটি নীচের মতো অফিসিয়াল এডাব্লুএস সিএলআই ব্যবহার করে চালানো যেতে পারে এবং ফেব্রুয়ারী 2014 এ চালু হয়েছিল

 aws s3api list-objects --bucket BUCKETNAME --output json --query "[sum(Contents[].Size), length(Contents[])]"

21
বড় বালতি (বৃহত # ফাইলস) এর জন্য, এটি উদ্বেগজনকভাবে ধীরে ধীরে। পাইথন ইউটিলিটি এস 4 সেমিডি "ডু" দ্রুত বজ্রপাত:s4cmd du s3://bucket-name
ব্রেন্ট ফাউস্ট

এটা অদ্ভুত. আপনার বালতি সামগ্রিক প্রোফাইল কি (অগভীর এবং চর্বি / গভীর এবং পাতলা)? দেখে মনে হচ্ছে s3cmdএকই ওভারহেড থাকা উচিত AWS CLI। ইন কোড এটা দেখায় s3cmd একটি বালতি প্রতিটি ডিরেক্টরির জন্য একটি অনুরোধ করতে।
ক্রিস্টোফার হ্যাকেট

22
এটি মানুষের পঠনযোগ্য ফর্ম্যাটে পেতে: aws s3api --profile PROFILE_NAME list-objects --bucket BUCKET_NAME --output json --query "[sum(Contents[].Size), length(Contents[])]" | awk 'NR!=2 {print $0;next} NR==2 {print $0/1024/1024/1024" GB"}'
সন্দীপ

21
এখন যেহেতু এডাব্লুএস ক্লাউডওয়াচ প্রতি বালতি মেট্রিককে "বাল্টসাইজবাইটস" সরবরাহ করে, এটি আর সঠিক সমাধান নয়। নীচে Toukakoukan এর উত্তর দেখুন।
cce

2
s4cmd duদুর্দান্ত, আপনাকে ধন্যবাদ @ ব্রেন্ট ফাউস্ট! ছোট নোট (সংশ্লিষ্টদের জন্য) যে আপনাকে -rসাব-ডিরেক্টরিগুলির আকারও পেতে যোগ করতে হবে।
গ্রেগ সাদেটস্কি

330

এটি এখন সরকারী এডাব্লুএস কমান্ড লাইন ক্লায়েন্টের সাথে তুচ্ছভাবে করা যেতে পারে:

aws s3 ls --summarize --human-readable --recursive s3://bucket-name/

অফিসিয়াল ডকুমেন্টেশন

আপনি যদি পুরো বালতিটি গণনা করতে না চান তবে এটি পাথের উপসর্গগুলিও গ্রহণ করে:

aws s3 ls --summarize --human-readable --recursive s3://bucket-name/directory

23
এটি সেরা এবং আপ টু ডেট উত্তর
টিম

2
সম্মত হন, এটি সেরা উত্তর।
লুইস আর্টোলা

24
এটি অনেকগুলি ফাইল সহ বালতিগুলির জন্য খুব ধীর কারণ এটি সংক্ষিপ্তসারটি দেখানোর আগে মূলত বালতিতে সমস্ত বস্তু তালিকাভুক্ত করে এবং এটি @ ক্রিসটফার হ্যাকেটের উত্তরের চেয়ে উল্লেখযোগ্যভাবে দ্রুত নয় - এটি বাদে এটি আরও বেশি শোরগোল।
গাস uss


1
এটি ডিরেক্টরি ট্রিতে পৃথক সকল ফাইলের আকার প্রদর্শন করবে। আমি যদি কেবল ডিরেক্টরিটির জন্য মোট আকার করতে চাই?
ক্রিস এফ

130

এডাব্লুএস কনসোল:

এর হিসাবে জুলাই 2015 এর 28 তম এই তথ্য পেতে পারেন CloudWatch মাধ্যমে । আপনি যদি জিইউআই চান তবে ক্লাউডওয়াচ কনসোলে যান : (অঞ্চল নির্বাচন করুন) মেট্রিক্স> এস 3

এডাব্লুএস সি এল আই কমান্ড:

এটি এখানে পোস্ট করা অন্যান্য কয়েকটি কমান্ডের তুলনায় অনেক দ্রুত, কারণ সমষ্টিটি গণনা করার জন্য এটি প্রতিটি ফাইলের আকারের স্বতন্ত্রভাবে জিজ্ঞাসাবাদ করে না।

 aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time 2015-07-15T10:00:00 --end-time 2015-07-31T01:00:00 --period 86400 --statistics Average --region eu-west-1 --metric-name BucketSizeBytes --dimensions Name=BucketName,Value=toukakoukan.com Name=StorageType,Value=StandardStorage

গুরুত্বপূর্ণ : আপনাকে অবশ্যই দুটি মাত্রার যুক্তিতে স্টোরেজ টাইপ এবং বকেটনাম উল্লেখ করতে হবে অন্যথায় আপনি কোনও ফল পাবেন না। সমস্ত পরিবর্তন করতে হবে হয় --start-date, --end-timeএবং Value=toukakoukan.com


এখানে একটি ব্যাশ স্ক্রিপ্ট আপনি ম্যানুয়ালি নির্দিষ্ট করে --start-dateএবং তা এড়াতে ব্যবহার করতে পারেন --end-time

#!/bin/bash
bucket=$1
region=$2
now=$(date +%s)
aws cloudwatch get-metric-statistics --namespace AWS/S3 --start-time "$(echo "$now - 86400" | bc)" --end-time "$now" --period 86400 --statistics Average --region $region --metric-name BucketSizeBytes --dimensions Name=BucketName,Value="$bucket" Name=StorageType,Value=StandardStorage

25
বা ক্লাউডওয়াচ কনসোলে : (অঞ্চল নির্বাচন করুন) মেট্রিক > এস 3
হালিল üzgür

3
এটি এখন পর্যন্ত সবচেয়ে সহজ এবং দ্রুত সমাধান। দুর্ভাগ্যক্রমে উত্তরটি এখনও কেবল চতুর্থ স্থানে রয়েছে।
luk2302

এটি আমার বালতিটির জন্য 10 মিলিয়ন + অবজেক্ট সহ কাজ করেছে। তবে বাশ স্ক্রিপ্টটি কিছু ফেরেনি, জিইউআইতে যেতে হয়েছিল)।
পেটাহ

1
এটিও লক্ষ করা উচিত যে আপনাকে
অঞ্চলটিও

মে 2018: স্ক্রিপ্ট ত্রুটিInvalid value ('1525354418') for param timestamp:StartTime of type timestamp
এনেব

106

s3cmd এটি করতে পারে:

s3cmd du s3://bucket-name


ধন্যবাদ। এখানে কিছু সময় আছে। একটি বালতিতে যেটি প্রায় 3 মিলিয়ন ফাইলের অপ্রচলিত ডেটা এবং প্রায় 93000 এস 3 অবজেক্ট ব্যবহার করে প্রায় মিলিয়ন ফাইলের সাথে একটি এস 3 কিএল ডুপ্লিকেটযুক্ত ফাইল সিস্টেম ধারণ করে, এস 3 সেমিডি ডু উত্তরটি গণনা করতে 4 মিনিট সময় নেয়। আমি জানতে আগ্রহী যে এটি অন্য কোথাও বর্ণিত পিএইচপি এর মতো অন্যান্য পদ্ধতির সাথে কীভাবে তুলনা করে।
nealmcb

1
এটি ধীর কারণ S3 listObjects এপিআই কল 1000 বস্তুর পৃষ্ঠাতে বস্তুগুলি ফেরত দেয়। আই / ও যেহেতু সীমাবদ্ধ ফ্যাক্টর হিসাবে আমি মনে করি যে কোনও সমাধান তুলনামূলকভাবে 000৩০০০ অবজেক্টের চেয়ে ধীরে ধীরে ধীরে ধীরে হবে।
ডেভিড স্নাবেল-কাউন্ট

11
ফলাফল দ্রুত গতিতে এস 3 এর এপিআইতে অনুরোধগুলি মাল্টি-থ্রেডিংয়ের যুক্ত সুবিধা সহ এস 4 সেমিডি একই কাজ করতে পারে। সরঞ্জামটি সম্প্রতি আপডেট করা হয়নি তবে ইন্টারনেট পথচারী এটি দরকারী বলে মনে করতে পারে।
নিক চামাস

s4cmd কেবল আমার জন্য 0 প্রদান করে এবং BotoClientError: Bucket names cannot contain upper-case characters when using either the sub-domain or virtual hosting calling format.বড় হাতের অক্ষরের সাথে বালতিগুলির জন্য ফেরত দেয় ।
লাকিতু

22

আপনি যদি কোনও ব্যবহারের প্রতিবেদনটি ডাউনলোড করেন তবে আপনি TimedStorage-ByteHrsক্ষেত্রটির জন্য দৈনিক মানগুলি গ্রাফ করতে পারেন ।

আপনি যদি জিআইবিতে এই সংখ্যাটি চান তবে কেবল এটির মাধ্যমে ভাগ করুন 1024 * 1024 * 1024 * 24(এটি 24 ঘন্টা চক্রের জন্য জিআইবি-ঘন্টা)। আপনি যদি সংখ্যাটি বাইটে চান তবে কেবল 24 দ্বারা ভাগ করুন এবং গ্রাফটি দূরে।


19

অফিসিয়াল এডাব্লুএস এস 3 কমান্ড লাইন সরঞ্জামগুলি ব্যবহার করে:

aws s3 ls s3://bucket/folder --recursive | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024" MB"}'

এটি একটি আরও ভাল কমান্ড, --summarize --human-readable --recursiveপরে নিম্নলিখিত 3 পরামিতি যুক্ত করুন aws s3 ls--summarizeমোট আকারে একটি সুন্দর স্পর্শ দেয় যদিও এটি প্রয়োজন হয় না।

aws s3 ls s3://bucket/folder --summarize --human-readable --recursive

1
যেখানে দয়া করে অ্যামাজন আসলে এটি লিঙ্ক সরবরাহ করুন। আমি এটি খুঁজে পাচ্ছি না।
লবি



4
এই উত্তরটি আমার পক্ষে সবচেয়ে ভাল এবং দ্রুত কাজ করেছে।
মিরো

2
সেরা এবং দ্রুত উত্তর!
প্লাগটাগ

11

s4cmd হ'ল আমি দ্রুততম পথ খুঁজে পেয়েছি (পাইথনে লিখিত একটি কমান্ড-লাইন ইউটিলিটি):

pip install s4cmd

এখন একাধিক থ্রেড ব্যবহার করে পুরো বালতির আকার গণনা করতে:

s4cmd du -r s3://bucket-name

6
না, s4cmd du s3://123123drinkকেবল বালতির আকার ফিরিয়ে দেবে না। বালতিটির আকার পেতে আপনি পুনরাবৃত্তকারীগুলি যুক্ত করুন -r, এটির মতো: s4cmd du -r s3: // 123123 ড্রিঙ্ক
জর্জ চালাহউব

1
হ্যাঁ, ভাল পয়েন্ট @ বুকলাউ ( -rলোকেরা এস 3-তে সিমুলেটেড ফোল্ডার ব্যবহার করার সময় বিভ্রান্তি এড়াতে উপরের উদাহরণে যুক্ত হয়েছে)।
ব্রেন্ট ফাউস্ট

6

আমি আগে এই থ্রেডে তালিকাভুক্ত এস 3 আরএসটি / কার্ল এপিআই ব্যবহার করেছি এবং এটি করেছি:

<?php
if (!class_exists('S3')) require_once 'S3.php';

// Instantiate the class
$s3 = new S3('accessKeyId', 'secretAccessKey');
S3::$useSSL = false;

// List your buckets:
echo "S3::listBuckets(): ";
echo '<pre>' . print_r($s3->listBuckets(), 1). '</pre>';

$totalSize = 0;
$objects = $s3->getBucket('name-of-your-bucket');
foreach ($objects as $name => $val) {
    // If you want to get the size of a particular directory, you can do
    // only that.
    // if (strpos($name, 'directory/sub-directory') !== false)
    $totalSize += $val['size'];
}

echo ($totalSize / 1024 / 1024 / 1024) . ' GB';
?>

6

আপনি s3cmd ইউটিলিটি ব্যবহার করতে পারেন, যেমন:

s3cmd du -H s3://Mybucket
97G      s3://Mybucket/

5

সুতরাং এপিআই এর মাধ্যমে চারদিকে ট্রলিং করা এবং কিছু একই প্রশ্ন খেলে এস 3 একটি অনুরোধে বালতির পুরো বিষয়বস্তু তৈরি করবে এবং এটি ডিরেক্টরিতে নেওয়ার প্রয়োজন হবে না। এরপরে ফলাফলগুলি কেবলমাত্র বিভিন্ন এক্সএমএল উপাদানগুলির মাধ্যমে সংক্ষেপণের প্রয়োজন, এবং পুনরাবৃত্তি কলগুলি নয়। আমার কাছে একটি নমুনা বালতি নেই যার হাজার হাজার আইটেম রয়েছে সুতরাং আমি জানি না এটি কতটা ভালভাবে স্কেল করবে তবে এটিকে যুক্তিযুক্ত বলে মনে হয় সহজ।


এটি সেরা বিকল্প বলে মনে হচ্ছে। ভবিষ্যতে এই পোস্টটি আপডেট করা হবে যদি এটি খারাপভাবে স্কেল করে এবং আমার আরও কিছু করা প্রয়োজন। যে লাইব্রেরিটি কাঁচা এপিআই ফলাফলগুলিতে সহজে অ্যাক্সেস প্রদানের অবসান ঘটিয়েছিল তা হ'ল এই পিএইচপি এক: undesided.org.za/2007/10/22/amazon-s3-php-class
গ্যারেট হিটন

এটি কি কেবল প্রথম 1000 আইটেমের মধ্যে সীমাবদ্ধ নয়?
চার্লি শ্লিয়েসার

4

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

এটি পরীক্ষা করে দেখুন এবং সাহায্যকারী কিনা তা আমাকে জানান

AmazonTools


এটি একটি আকর্ষণীয় সমাধান, যদিও সামান্য হ্যাকিশ। এটি অবিচ্ছিন্ন হয়ে যাওয়ার বিষয়ে উদ্বিগ্ন / যখন অ্যামাজন তাদের সাইট পরিবর্তন করে, তবে আমার কাছে পর্যাপ্ত অবজেক্ট থাকলে অন্যভাবে খুব ধীর হয়ে যায় আমি একবার এটি চেষ্টা করে দেখতে পারি। এই পদ্ধতির আর একটি সুবিধা হ'ল আপনি কোনও এপিআই কলগুলির জন্য চার্জ পাবেন না।
গ্যারেট হিটন

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

3

আমি ব্যবহার করার প্রস্তাব দিই এস 3 ব্যবহারের প্রতিবেদন বৃহৎ বাকেট দেখুন আমার কিভাবে কিভাবে এটি মূলত আপনি সময়যুক্ত সংগ্রহস্থল গত প্রতিদিন এস 3 সেবার জন্য ব্যবহার প্রতিবেদন ডাউনলোড করতে হবে পেতে অন - বাইট ঘন্টা এবং এটি পার্স ডিস্কের ব্যবহার জন্য।

cat report.csv | awk -F, '{printf "%.2f GB %s %s \n", $7/(1024**3 )/24, $4, $2}' | sort -n

3

অ্যাডাব্লুএস ডকুমেন্টেশন আপনাকে এটি কীভাবে করতে হবে তা বলে:

aws s3 ls s3://bucketnanme --recursive --human-readable --summarize

এটি আপনার প্রাপ্ত ফলাফল:

2016-05-17 00:28:14    0 Bytes folder/
2016-05-17 00:30:57    4.7 KiB folder/file.jpg
2016-05-17 00:31:00  108.9 KiB folder/file.png
2016-05-17 00:31:03   43.2 KiB folder/file.jpg
2016-05-17 00:31:08  158.6 KiB folder/file.jpg
2016-05-17 00:31:12   70.6 KiB folder/file.png
2016-05-17 00:43:50   64.1 KiB folder/folder/folder/folder/file.jpg

Total Objects: 7

   Total Size: 450.1 KiB

2

সত্যই স্বল্প প্রযুক্তির পদ্ধতির জন্য: এমন একটি এস 3 ক্লায়েন্ট ব্যবহার করুন যা আপনার জন্য আকারটি গণনা করতে পারে। আমি প্যানিক্স ট্রান্সমিট ব্যবহার করছি, একটি বালতিতে ক্লিক করুন, "তথ্য পান" করুন এবং "গণনা" -বাটনটি ক্লিক করুন। অন্যান্য পদ্ধতির সাথে এটি কতটা দ্রুত বা সঠিক তা আমি নিশ্চিত নই, তবে মনে হয় যে আকারটি এটি প্রত্যাশা করেছিল তা ফিরে পেয়েছে।


2

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

আমার বালতিগুলির একটির বিরুদ্ধে পরীক্ষা করা, এটি আমাকে 128075 গণনা এবং 70.6 জিবি আকার দিয়েছে count আমি জানি যে 99.9999% সঠিক, তাই ফলাফলের সাথে আমি ভাল।

void Main() {
    var s3Client = new AmazonS3Client("accessKey", "secretKey", RegionEndpoint.???);
    var stop = false;
    var objectsCount = 0;
    var objectsSize = 0L;
    var nextMarker = string.Empty;

    while (!stop) {
        var response = s3Client.ListObjects(new ListObjectsRequest {
            BucketName = "",
            Marker = nextMarker
        });

        objectsCount += response.S3Objects.Count;
        objectsSize += response.S3Objects.Sum(
            o =>
                o.Size);
        nextMarker = response.NextMarker;
        stop = response.S3Objects.Count < 1000;
    }

    new {
        Count = objectsCount,
        Size = objectsSize.BytesToString()
    }.Dump();
}

static class Int64Extensions {
    public static string BytesToString(
        this long byteCount) {
        if (byteCount == 0) {
            return "0B";
        }

        var suffix = new string[] { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
        var longBytes = Math.Abs(byteCount);
        var place = Convert.ToInt32(Math.Floor(Math.Log(longBytes, 1024)));
        var number = Math.Round(longBytes / Math.Pow(1024, place), 1);

        return string.Format("{0}{1}", Math.Sign(byteCount) * number, suffix[place]);
    }
}

2

আপনি যদি ডাব্লুএস কনসোল থেকে আকার পেতে চান:

  1. এস 3 এ যান এবং বালতির নামটি ক্লিক করুন
  2. "পরিচালনা" ট্যাবটি নির্বাচন করুন

এখানে চিত্র বর্ণনা লিখুন

  1. মেট্রিক্স ট্যাব নির্বাচন করুন

ডিফল্টরূপে আপনাকে বালতির স্টোরেজ মেট্রিক দেখতে হবে


1

আমি জানি এটি একটি পুরানো প্রশ্ন তবে এখানে পাওয়ারশেলের উদাহরণ রয়েছে:

Get-S3Object -BucketName <buckename> | select key, size | foreach {$A += $_.size}

$A বালতিটির আকার রয়েছে এবং আপনি যদি কেবল বালতিতে একটি নির্দিষ্ট ফোল্ডারের আকার চান তবে একটি কীনাম প্যারামিটার রয়েছে।


প্রথমে গেট-অবজেক্ট..লাইন চালান এবং তারপরে $ এ (পাওয়ারশেলের সাথে পরিচিত না তাদের জন্য) চালান
ফয়েজ

1

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

s3list=`aws s3 ls | awk  '{print $3}'`
for s3dir in $s3list
do
    echo $s3dir
    aws s3 ls "s3://$s3dir"  --recursive --human-readable --summarize | grep "Total Size"
done

এটি দুর্দান্ত কাজ করেছে।
মাইক বারলো - বারডেভ

কোনও চলকটিতে আউটপুট ক্যাপচার করা যাতে আপনি এটির উপর লুপ করতে পারেন এটি একটি অপব্যয় প্রতিরোধী pat
ট্রিপল

1

আপনি ব্যবহার করতে পারেন s3cmd:

s3cmd du s3://Mybucket -H

অথবা

s3cmd du s3://Mybucket --human-readable

এটি মোট পাঠ্য আকার এবং বালতিটির আকার খুব পঠনযোগ্য আকারে দেয়।


কি duঢুকা তালিকা সমস্ত বস্তু অথবা মেটাডাটা পুনরুদ্ধার করবেন? সত্যই রিপোর্টের সংস্করণটির একটি এপিআই সংস্করণ বা
অ্যাউস


0

এছাড়াও Hanzo S3 সরঞ্জাম এটি করে। একবার ইনস্টল হয়ে গেলে আপনি এটি করতে পারেন:

s3ls -s -H bucketname

তবে আমি বিশ্বাস করি এটি ক্লায়েন্ট পক্ষেরও সংক্ষিপ্তসার এবং AWS API এর মাধ্যমে পুনরুদ্ধার করা যায় না।


0

ক্লাউডবেরি প্রোগ্রাম দ্বারা বালতিটির আকার, ফোল্ডার এবং মোট ফাইলের পরিমাণ তালিকাভুক্ত করা সম্ভব, বালতির ঠিক উপরে "বৈশিষ্ট্য" ক্লিক করে properties


0

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


0

আমি একটি বাশ স্ক্রিপ্ট লিখেছি, s3-du.sh যা বালতিতে এস 3 এস সহ ফাইলগুলি তালিকাভুক্ত করবে এবং ফাইলগুলির মুদ্রণ গণনা, এবং আকারগুলি পছন্দ করবে

s3-du.sh testbucket.jonzobrist.com
149 files in bucket testbucket.jonzobrist.com
11760850920 B
11485205 KB
11216 MB
10 GB

সম্পূর্ণ স্ক্রিপ্ট:

#!/bin/bash

if [ “${1}” ]
then
NUM=0
COUNT=0
for N in `s3ls ${1} | awk ‘{print $11}’ | grep [0-9]`
do
NUM=`expr $NUM + $N`
((COUNT++))
done
KB=`expr ${NUM} / 1024`
MB=`expr ${NUM} / 1048576`
GB=`expr ${NUM} / 1073741824`
echo “${COUNT} files in bucket ${1}”
echo “${NUM} B”
echo “${KB} KB”
echo “${MB} MB”
echo “${GB} GB”
else
echo “Usage : ${0} s3-bucket”
exit 1
fi    

এটি সাব-ডাইরেক্টরি আকারটি করে, কারণ অ্যামাজন ডিরেক্টরি নাম এবং এর সমস্ত সামগ্রীর আকার দেয়।


0

ক্লাউডওয়াচের একটি ডিফল্ট এস 3 পরিষেবা ড্যাশবোর্ড রয়েছে যা এটি "বকেট সাইজ বাইটস অ্যাভারেজ" নামে একটি গ্রাফে তালিকাবদ্ধ করে। আমি মনে করি এই লিঙ্কটি ইতিমধ্যে এডাব্লুএস কনসোলে লগইন করা কারও পক্ষে কাজ করবে :


-1

নিম্নলিখিত উপায়টি বালতিটির মোট আকার পেতে AWS পিএইচপি এসডিকে ব্যবহার করে।

// make sure that you are using correct region (where the bucket is) to get new Amazon S3 client
$client = \Aws\S3\S3Client::factory(array('region' => $region));

// check if bucket exists
if (!$client->doesBucketExist($bucket, $accept403 = true)) {
    return false;
}
// get bucket objects
$objects = $client->getBucket(array('Bucket' => $bucket));

$total_size_bytes = 0;
$contents = $objects['Contents'];

// iterate through all contents to get total size
foreach ($contents as $key => $value) {
   $total_bytes += $value['Size'];
}
$total_size_gb = $total_size_bytes / 1024 / 1024 / 1024;

-1

এটি আমার পক্ষে কাজ করে ..

aws s3 ls s3://bucket/folder/ --recursive | awk '{sz+=$3} END {print sz/1024/1024 "MB"}'

3
আপনি আরও কিছু বিবরণ যুক্ত করতে পারেন?
পিয়ের.ভ্রিয়েন্স

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