আমি কীভাবে বলতে পারি যে আমি এস 3 বালতিতে কয়টি বস্তু সঞ্চয় করেছি?


155

যতক্ষণ না আমি কিছু মিস করছি, মনে হচ্ছে আমি যে এপিআইগুলিতে দেখেছি তাদের কোনওই আপনাকে এস -3 বালতি / ফোল্ডারে (উপসর্গ) কতটা অবজেক্ট রয়েছে তা আপনাকে জানাতে পারবে না। একটি গণনা পাওয়ার কোনও উপায় আছে?


এই প্রশ্নটি সহায়ক হতে পারে: stackoverflow.com/questions/701545/…
ব্রেন্ডন লং

1
সমাধান এখন 2015 সালে বিদ্যমান: stackoverflow.com/a/32908591/578989
মায়াঙ্ক জয়সওয়াল

: নীচের আমার উত্তর দেখুন stackoverflow.com/a/39111698/996926
advncd

উত্তর:


39

কোনও উপায় নেই, যদি না আপনি

  1. তাদের সকলকে 1000 এর ব্যাচে তালিকাবদ্ধ করুন (যা ধীর হতে পারে এবং ব্যান্ডউইথ চুষতে পারে - অ্যামাজন কখনও এক্সএমএল প্রতিক্রিয়াগুলি সঙ্কোচিত করে না বলে মনে হয়), বা

  2. S3 এ আপনার অ্যাকাউন্টে লগইন করুন, এবং অ্যাকাউন্ট - ব্যবহারে যান। দেখে মনে হচ্ছে বিলিং ডিপেক্টর জানেন যে আপনি ঠিক কতটি জিনিস সংরক্ষণ করেছেন!

আপনার সমস্ত অবজেক্টের তালিকাটি কেবল ডাউনলোড করতে আসলে আপনার কিছুটা সময় লাগে এবং যদি আপনার 50 মিলিয়ন অবজেক্ট সঞ্চিত থাকে তবে কিছু অর্থ ব্যয় হবে।

আরো দেখুন StorageObjectCount সম্পর্কে এই থ্রেড যা ব্যবহারের ডেটা রয়েছে -।

অন্তত বেসিকগুলি পেতে একটি এস 3 এপিআই, এটি ঘন্টার পুরানো হলেও, দুর্দান্ত হবে।


সেই লিঙ্কটি মারা গেছে way
ক্ষেত্রগুলি


আপনি যদি আমার মতো অলস হন তবে নিউভেম মূলত আপনার পক্ষে এটি করেন এবং আপনার এস 3 অ্যাকাউন্টে প্রতি বালতি স্তরের ফলাফলগুলি একত্রিত / ট্র্যাক করে।
rcoup

2
আপনি @ মায়াঙ্কজাইসওয়ালের প্রতিক্রিয়া অন্তর্ভুক্ত করতে আপনার প্রতিক্রিয়াটি আপডেট করতে পারবেন?
জোসেফ কেসি

1
বিলিং ডিপ্টে সব জানে! এতে অবাক হওয়ার কিছু নেই যে তারা দুর্ঘটনার মাধ্যমে এস3 পূর্ব উপকূলটি নেওয়ার ক্ষমতা রাখে
স্কি_সকোয়া

256

এডাব্লুএস সিএলআই ব্যবহার করা হচ্ছে

aws s3 ls s3://mybucket/ --recursive | wc -l 

অথবা

aws cloudwatch get-metric-statistics \
  --namespace AWS/S3 --metric-name NumberOfObjects \
  --dimensions Name=BucketName,Value=BUCKETNAME \
              Name=StorageType,Value=AllStorageTypes \
  --start-time 2016-11-05T00:00 --end-time 2016-11-05T00:10 \
  --period 60 --statistic Average

দ্রষ্টব্য: উপরের ক্লাউডওয়াচ কমান্ডটি অন্যের জন্য না হলেও কিছু সময়ের জন্য কাজ করছে বলে মনে হচ্ছে। এখানে আলোচনা করা হয়েছে: https://forums.aws.amazon.com/thread.jspa?threadID=217050

এডাব্লুএস ওয়েব কনসোল ব্যবহার করা

আপনি তাকান করতে cloudwatch এর মেট্রিক অধ্যায় সঞ্চিত বস্তুর প্রায় নম্বর পেতে। এখানে চিত্র বর্ণনা লিখুন

আমার প্রায় 50 মিলিয়ন পণ্য রয়েছে এবং এটি ব্যবহার করে গণনা করতে এক ঘন্টারও বেশি সময় নিয়েছিল aws s3 ls


18
এটি শীর্ষের কাছাকাছি হওয়া উচিত।
জোসেফ কেসি

3
@ জোসেফএম কেসে আমি সম্মত। এটি এইভাবে একটি বালতি সহ ডিরেক্টরিতে বস্তুর সংখ্যা দেওয়ার জন্যও কাজ করে:aws s3 ls s3://mybucket/mydirectory/ --recursive | wc -l
টিম পিটারসন

1
আমি উপরেরটি সিএমডি প্রম্পটে চালিয়ে গেলে এই ত্রুটিটি দেয় - 'ডাব্লুসি' অভ্যন্তরীণ বা বাহ্যিক কমান্ড, অপারেবল প্রোগ্রাম বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়। - আমি এতে বেশ নতুন তাই কেউ সমাধান দিতে পারে কি?
সানডুন

ক্লাউডওয়াচ খুব নির্ভরযোগ্য বলে মনে হচ্ছে না এমন একটি সতর্কতা। আমার কাছে একটি বালতিতে এমপি 4 ফাইল রয়েছে যা ক্লাউডওয়াচ (নাম্বারফট অবজেক্টস মেট্রিক) 2,300 পৃথক অবজেক্ট হিসাবে গণ্য হয়েছে। আমি ডাব্লুএসএস সি এল এলির সাথে সঠিক নম্বর পেয়েছি।
আলেকস

"গড়" কেন? পরিবর্তে কেউ কি "Sum" চান না?
ffxsam

150

একটি --summarizeস্যুইচ রয়েছে যার মধ্যে বালতি সংক্ষিপ্তসার সম্পর্কিত তথ্য রয়েছে (অর্থাত্ সামগ্রীর সংখ্যা, মোট আকার)।

এডাব্লুএস ক্লিমে ব্যবহার করে সঠিক উত্তর এখানে দেওয়া হয়েছে:

aws s3 ls s3://bucketName/path/ --recursive --summarize | grep "Total Objects:"

Total Objects: 194273

ডকুমেন্টেশন দেখুন


4
এটি দুর্দান্ত: Total Objects: 7235 Total Size: 475566411749- এত সহজ।
বনহ

16
দুর্ভাগ্যক্রমে (বর্তমানে ,000০০,০০০ এর চেয়ে বেশি, তাই এটি বেশ সময় সাশ্রয়ী)
মাইকেলচিরিকো

5 এম অবজেক্ট সহ বালতিতে এই টাস্কটি চালাতে কত খরচ হবে?
সাইকোজোজিক

2
এই উত্তরটি অত্যন্ত অদক্ষ, সম্ভাব্য খুব ধীর এবং ব্যয়বহুল। উত্তরটি খুঁজে পেতে এটি পুরো বালতিতে পুনরাবৃত্তি করে।
তাঁত 23

2
এবং আমি যুক্ত করতে পারি যে, স্ট্যান্ডার্ড স্টোরেজে থাকা 1.2 বিলিয়ন অবজেক্টের উপরে পুনরাবৃত্তি করতে এটির প্রায় 6000 ডলার ব্যয় হতে পারে।
সি জনসন

66

যদিও এটি একটি পুরানো প্রশ্ন, এবং প্রতিক্রিয়া 2015 সালে সরবরাহ করা হয়েছিল, এখনই এটি অনেক সহজ, এস 3 ওয়েব কনসোল একটি "আকার নিন" বিকল্পটি সক্ষম করেছে:

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

যা নিম্নলিখিত সরবরাহ করে:

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


1
হ্যাঁ, নতুন এডাব্লুএস কনসোল, যদিও এটি আমার চোখে আঘাত দেয়, এটি একটি বোতামের ক্লিকে অবজেক্টের সংখ্যা এবং মোট আকার উপলব্ধ করে।
আনি

11
এটি কেবল ফোল্ডার স্তরে কাজ করে বলে মনে হচ্ছে। "আকার নিন" বালতি স্তরে উপলব্ধ নেই
জি-।

1
@ জি। আপনি যদি বালতির সমস্ত ফোল্ডার নির্বাচন করেন?
gvasquez

4
@ জি। তবে, "সমস্ত নির্বাচন করুন" বাক্সটি কেবল পাতায় প্রদর্শিত ফোল্ডার এবং অবজেক্টগুলি নির্বাচন করে, বালতির সমস্ত ফোল্ডার / অবজেক্ট নয়।
gparis

2
@gparis ভাল পয়েন্ট। ভাল করে লক্ষণীয়। ধন্যবাদ। সুতরাং এটি প্রদর্শিত হয় যে কনসোলে, কোনও একক পৃষ্ঠায় প্রদর্শিত হতে পারে তার চেয়ে বেশি ফাইল বা ফোল্ডার থাকলে আমাদের কাছে বিকল্প নেই
জি-।

50

আপনি যদি s3cmd কমান্ড-লাইন সরঞ্জামটি ব্যবহার করেন , আপনি একটি নির্দিষ্ট বালতির একটি পুনরাবৃত্ত তালিকা পেতে পারেন, এটি একটি পাঠ্য ফাইলে আউটপুট করে।

s3cmd ls -r s3://logs.mybucket/subfolder/ > listing.txt

তারপরে লিনাক্সে আপনি রেখাগুলি গণনার জন্য ফাইলটিতে একটি ডাব্লুসি-এল চালাতে পারেন (প্রতিটি বস্তুর জন্য 1 লাইন)

wc -l listing.txt

-rকমান্ডে জন্য --recursive, তাই এটি হিসাবে ভাল উপ-ফোল্ডার জন্য কাজ করা উচিত।
দীপক জয়

3 টি নোট। ক।) আপনার aws s3 lsএস 3 সিএমডি এর চেয়ে বেশি ব্যবহার করা উচিত কারণ এটি দ্রুত। খ।) বড় বালতিগুলির জন্য এটি একটি দীর্ঘ সময় নিতে পারে। 1 মিলিল ফাইলের জন্য প্রায় 5 মিনিট সময় নিয়েছে। সি।) ক্লাউডওয়াচ ব্যবহার সম্পর্কে আমার উত্তর নীচে দেখুন।
মাস্তাব্লাস্টা

46

এখন এস 3 এপিআইয়ের সাথে একটি সহজ সমাধান রয়েছে (এডাব্লুএস ক্লায়েন্টে উপলব্ধ):

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

বা একটি নির্দিষ্ট ফোল্ডারের জন্য:

aws s3api list-objects --bucket BUCKETNAME --prefix "folder/subfolder/" --output json --query "[length(Contents[])]"

1
রাফেল, আপনার ফোল্ডার ক্যোয়ারী দুর্দান্ত কাজ করে, যদি ফোল্ডারটি খালি থাকে বা অস্তিত্বহীন থাকে তবে আপনি পাবেন: ফাংশন দৈর্ঘ্যে (), মানের জন্য অবৈধ প্রকার: কিছুই নয়, প্রত্যাশিত একটি: ['স্ট্রিং', 'অ্যারে' , 'অবজেক্ট'], পেয়েছি: "নাল" ফোল্ডারটি খালি থাকলে বা প্রস্থান না করে কেবল 0 আউটপুট দেওয়ার কোনও উপায় আছে কি?
ব্যবহারকারী 3591836

1
আমি Illegal token value '(Contents[])]' (অ্যাউস-ক্লাইমের 1.2.9 সংস্করণ) পেয়েছি, যখন কেবল ব্যবহার --bucket my-bucketএবং A client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not existব্যবহার করার সময় --bucket s3://my-bucket। (এটি অবশ্যই উপস্থিত রয়েছে এবং এতে 1000+ ফাইল রয়েছে))
ড্যারেন কুক

@ ড্যারেনকুক বালতি নাম থেকে s3: // মুছে ফেলুন। ক্লায়েন্ট প্রোটোকল সমর্থন করে বলে মনে হচ্ছে না।
শ্রীরাঞ্জন মঞ্জুনাথ

এটি ডাব্লুসি-এল উদাহরণগুলির তুলনায় অনেক দ্রুত। আমার বালতি দিয়ে এটি প্রায় 3-4k অবজেক্ট / সেকেন্ড গণনা করতে পারে। সুতরাং প্রতি মিলিয়ন অবজেক্টে 5 মিনিট s এস 3 ওয়েব জিইউআইতে "আকার নিন" সম্ভবত হুডের নীচে অনুরূপ কিছু ব্যবহার করে কারণ প্রায় একই সময় লাগে।
notpeter

জন্য খুব বড় বালতি, এই একমাত্র সমাধান ছিল (কম 20 মিনিট) থেকে একটি যুক্তিসঙ্গত সময়ের মধ্যে আমার জন্য কাজ
নিক Sarafa

40

প্রতিটি বালতির সঠিক গণনা দেখতে আপনি এস 3 এর জন্য এডাব্লুএস ক্লাউডওয়াচ মেট্রিক ব্যবহার করতে পারেন। আপনি বালতি নির্বাচন করার সময় ক্লাউডওয়াচ মেট্রিক


আমি মনে করি এটি সেরা উত্তর
Oktav

1 মি + কীগুলি তালিকাভুক্ত করার মতো হাস্যকর কিছু না করে একমাত্র আসল উত্তর। আমি ভুলে গিয়েছিলাম এটি ছিল।
অ্যান্ড্রু ব্যাকার

এটি আরও upvotes প্রয়োজন। অন্যান্য প্রতিটি সমাধান ব্যয় এবং সময়ের নিরিখে খুব কম স্কেল করে।
অ্যারন আর।

5

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


4

আপনি যদি এস 3 কনসোল "পরিচালনা" ট্যাবে যান এবং তারপরে "ম্যাট্রিক্স" ক্লিক করুন ... ট্যাবটির স্ক্রিন শট আপনি সহজেই মোট গণনা এবং ইতিহাস পেতে পারেন


আপনি কি NumberOfObjects (count/day)চার্টটি দেখানোর জন্য ছবিটি আপডেট করতে পারবেন ? এটি প্রশ্নের সাথে সরাসরি সম্পর্কিত হওয়ার কারণে এটি আরও ভাল। আপনার স্ক্রিনশটটিতে, আপনি এটি প্রদর্শিত হচ্ছে BucketSizeBytes (bytes/day)যা দরকারী হিসাবে, সরাসরি সমস্যার সাথে সম্পর্কিত নয়।
গুজমনে

1
2019 হিসাবে, এটি এখন স্বীকৃত উত্তর হওয়া উচিত। বাকি সমস্ত পুরানো বা ধীর।
সি জনসন

2

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

আরও তথ্যের জন্য এই অ্যামাজন ডকটি দেখুন: মাল্টি-পৃষ্ঠা ফলাফলের মাধ্যমে আইট্রেট করা


2

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

So, using 3Hub, 
- list the contents of the bucket (looks basically like a finder or explorer window)
- go to the bottom of the list, click 'show all'
- select all (ctrl+a)
- choose copy URLs from right-click menu
- paste the list into a text file (I use TextWrangler for Mac) 
- look at the line count  

আমার কাছে বালতিতে 20521 ফাইল ছিল এবং এক মিনিটেরও কম সময়ে ফাইল গণনা করা হয়েছিল।


2

আমি থেকে পাইথন স্ক্রিপ্ট ব্যবহার scalablelogic.com (COUNT লগিং যোগ)। দুর্দান্ত কাজ করেছেন

#!/usr/local/bin/python

import sys

from boto.s3.connection import S3Connection

s3bucket = S3Connection().get_bucket(sys.argv[1])
size = 0
totalCount = 0

for key in s3bucket.list():
    totalCount += 1
    size += key.size

print 'total size:'
print "%.3f GB" % (size*1.0/1024/1024/1024)
print 'total count:'
print totalCount

ঠিক তাই আপনি সচেতন, এটি বোটো 3 দিয়ে কাজ করে না। আমি আলাদা উত্তর হিসাবে নীচে একটি পরামর্শ অবদান।
ফিজিগ্রুপ

2

S3cmd এ কেবল নিম্নলিখিত কমান্ডটি চালান (একটি উবুন্টু সিস্টেমে):

s3cmd ls -r s3://mybucket | wc -l

13
আপনি একটি বিদ্যমান উত্তরের দুর্বল ফর্ম্যাট অনুলিপি পোস্ট করতে 5 বছরের পুরানো প্রশ্নটিকে কেন পুনরুত্থিত করলেন ?
টু-বিট অ্যালকেমিস্ট

পূর্ববর্তী উত্তরটি আউটপুটটিকে অহেতুকভাবে একটি টেক্সট ফাইলে পাইপ করেছিল।
mjsa

10
আইএমও এর উত্তরটি সম্পর্কে একটি মন্তব্য হওয়া উচিত। এটি একটি সত্যই তুচ্ছ পার্থক্য।
টু-বিট অ্যালকেমিস্ট

2
একটি উপযুক্ত উত্তরের মতো বলে মনে হচ্ছে- বিশেষত যেহেতু এই প্রশ্নের জন্য নির্বাচিত উত্তরটি 'কোনও উপায় নেই ...' দিয়ে শুরু হয় এবং @ এমজেএসএ একটি লাইন উত্তর সরবরাহ করেছে।
নান

এটি কোনও উত্তরের উত্তর নয় কারণ এটি সংস্করণীকৃত বস্তুগুলিকে অ্যাকাউন্টে নেয় না।
3h4x

2

আপনি যদি উইন্ডোজ এডাব্লুএস সিএলআই ব্যবহার করে থাকেন তবে আপনি * নেক্সের Measure-Objectমতো মোট সংখ্যা গণনা করতে পাওয়ারশেল থেকে ব্যবহার করতে পারেন wc -l

PS C:\> aws s3 ls s3://mybucket/ --recursive | Measure-Object

Count    : 25
Average  :
Sum      :
Maximum  :
Minimum  :
Property :

আশা করি এটা সাহায্য করবে.


2

এস 3-তে বস্তুর সংখ্যা গণনা করার একটি সহজ উপায় হ'ল:

পদক্ষেপ 1: রুট ফোল্ডারটি নির্বাচন করুন পদক্ষেপ 2: অ্যাকশনগুলিতে ক্লিক করুন -> মুছুন (অবশ্যই, মুছে ফেলবেন না সাবধানতা অবলম্বন করুন) স্টিপ 3: কয়েক মিনিট অপেক্ষা করুন আপনাকে অবজেক্টের সংখ্যা এবং তার মোট আকার প্রদর্শন করবে।

সমাধানটি সন্ধান করতে পারলে ভোট দিন।


1

কোনও এআইপিআই আপনাকে গণনা দেবে না কারণ এটি করার জন্য কোনও অ্যামাজন নির্দিষ্ট API নেই। আপনাকে কেবল একটি তালিকা-বিষয়বস্তু চালাতে হবে এবং ফিরে আসা ফলাফলের সংখ্যা গণনা করতে হবে।


কিছু কারণে, রুবি লিবস (ডান_আউজ / অ্যাপোসকি_আওস) বালতিতে প্রথম 1000 টির চেয়ে বেশি বস্তু তালিকাভুক্ত করবে না। এমন কি অন্যরা রয়েছে যা সমস্ত বস্তুর তালিকা তৈরি করবে?
ক্ষেত্রগুলি

আপনি যখন তালিকার জন্য অনুরোধ করবেন, তারা একটি "নেক্সটটোকেন" ক্ষেত্র সরবরাহ করে, যা আপনি টোকেনের মাধ্যমে অনুরোধটি আবার প্রেরণ করতে ব্যবহার করতে পারেন এবং এটি আরও তালিকাভুক্ত করবে।
মিচ ডেম্পসে

1

এডাব্লুএস সি এল আই-র কমান্ড লাইন থেকে, ব্যবহার করুন ls plus --summarize। এটি আপনাকে আপনার সমস্ত আইটেমের তালিকা এবং নির্দিষ্ট বালতিতে নথিগুলির মোট সংখ্যা দেবে। সাব বালতিযুক্ত বালতি দিয়ে আমি এটি চেষ্টা করি নি:

aws s3 ls "s3://MyBucket" --summarize

এটি কিছুটা সময় নেয় (এটি আমার 16+ কে ডকুমেন্টগুলি প্রায় 4 মিনিটের তালিকাতে নিয়েছে) তবে এটি একবারে 1 কে গণনার চেয়ে দ্রুত।



0

3 হাব বন্ধ রয়েছে। এর চেয়ে আরও ভাল সমাধান রয়েছে, আপনি ট্রান্সমিট (কেবল ম্যাক) ব্যবহার করতে পারেন , তারপরে আপনি কেবল নিজের বালতির সাথে সংযোগ স্থাপন করুন এবং মেনু Show Item Countথেকে চয়ন করুন View


দুর্ভাগ্যক্রমে প্রেরণ কেবলমাত্র 1000 টি আইটেম দেখায় (এবং আইটেম গণনাটি 1000 এও সর্বাধিক হয়)
টিনো

0

আপনি http://s3browser.com/ থেকে এস 3 ব্রাউজারটি ডাউনলোড এবং ইনস্টল করতে পারেন । আপনি যখন কেন্দ্রের ডান কোণে একটি বালতি নির্বাচন করবেন তখন আপনি বালতিতে থাকা ফাইলের সংখ্যা দেখতে পাবেন। তবে, এটির আকারটি বর্তমান সংস্করণে ভুল।

Gubs


0

সবচেয়ে সহজ উপায় হ'ল বিকাশকারী কনসোলটি ব্যবহার করা, উদাহরণস্বরূপ, আপনি যদি ক্রোমে থাকেন তবে বিকাশকারী সরঞ্জামগুলি চয়ন করুন এবং আপনি নিম্নলিখিতটি দেখতে পাচ্ছেন, আপনি হয় 280-279 + 1 = 2 এর মতো কিছু মিল খুঁজে পেতে বা গণনা করতে বা করতে পারেন either

...


আপনি কীভাবে বকেটে থাকা সামগ্রীর সংখ্যা নির্ধারণ করতে বিকাশকারী সরঞ্জামগুলি কীভাবে ব্যবহার করেছেন সে সম্পর্কে আরও কিছু বিশদ যুক্ত করতে পারেন।
যুগল পঞ্চাল

0

আপনি সম্ভবত অ্যামাজন এস 3 ইনভেন্টরিটি ব্যবহার করতে পারেন যা আপনাকে কোনও সিএসভি ফাইলে বস্তুর তালিকা দেবে


0

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

ডাউনলোড লিঙ্ক: https://s3browser.com/download.aspx



0

বালতি বা একটি নির্দিষ্ট ফোল্ডারে মোট ফাইল গণনা পাওয়ার জন্য আপনি এই ক্লাইম কমান্ডটি কার্যকর করতে পারেন

পুরো বালতি স্ক্যান করুন

aws s3api list-objects-v2 --bucket testbucket | grep "Key" | wc -l
aws s3api list-objects-v2 --bucket BUCKET_NAME | grep "Key" | wc -l

বিশদ পেতে আপনি এই আদেশটি ব্যবহার করতে পারেন

aws s3api list-objects-v2 --bucket BUCKET_NAME

একটি নির্দিষ্ট ফোল্ডার স্ক্যান করুন

aws s3api list-objects-v2 --bucket testbucket --prefix testfolder --start-after testfolder/ | grep "Key" | wc -l

aws s3api list-objects-v2 --bucket BUCKET_NAME --prefix FOLDER_NAME --start-after FOLDER_NAME/ | grep "Key" | wc -l

0

আপনি যদি সুনির্দিষ্ট ফাইলগুলি সন্ধান করছেন, আসুন .jpgচিত্রগুলি বলুন , আপনি নিম্নলিখিতগুলি করতে পারেন:

aws s3 ls s3://your_bucket | grep jpg | wc -l

0

জাভা ক্লায়েন্ট ব্যবহার করে আপনি এটি কীভাবে করতে পারেন তা নিম্নলিখিত is

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
    <version>1.11.519</version>
</dependency>
import com.amazonaws.ClientConfiguration;
import com.amazonaws.Protocol;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ObjectListing;

public class AmazonS3Service {

    private static final String S3_ACCESS_KEY_ID = "ACCESS_KEY";
    private static final String S3_SECRET_KEY = "SECRET_KEY";
    private static final String S3_ENDPOINT = "S3_URL";

    private AmazonS3 amazonS3;

    public AmazonS3Service() {
        ClientConfiguration clientConfiguration = new ClientConfiguration();
        clientConfiguration.setProtocol(Protocol.HTTPS);
        clientConfiguration.setSignerOverride("S3SignerType");
        BasicAWSCredentials credentials = new BasicAWSCredentials(S3_ACCESS_KEY_ID, S3_SECRET_KEY);
        AWSStaticCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
        AmazonS3ClientBuilder.EndpointConfiguration endpointConfiguration = new AmazonS3ClientBuilder.EndpointConfiguration(S3_ENDPOINT, null);
        amazonS3 = AmazonS3ClientBuilder.standard().withCredentials(credentialsProvider).withClientConfiguration(clientConfiguration)
                .withPathStyleAccessEnabled(true).withEndpointConfiguration(endpointConfiguration).build();
    }

    public int countObjects(String bucketName) {
        int count = 0;
        ObjectListing objectListing = amazonS3.listObjects(bucketName);
        int currentBatchCount = objectListing.getObjectSummaries().size();
        while (currentBatchCount != 0) {
            count += currentBatchCount;
            objectListing = amazonS3.listNextBatchOfObjects(objectListing);
            currentBatchCount = objectListing.getObjectSummaries().size();
        }
        return count;
    }
}

0

উপরে পাইথন স্ক্রিপ্টের বোটো 3 সংস্করণটি এম্বেড করা হয়েছে।

import sys
import boto3

s3 = boto3.resource('s3')
s3bucket = s3.Bucket(sys.argv[1])
size = 0
totalCount = 0

for key in s3bucket.objects.all():
    totalCount += 1
    size += key.size

print('total size:')
print("%.3f GB" % (size*1.0/1024/1024/1024))
print('total count:')
print(totalCount)`

0

aws s3 ls s3: // বালতি-নাম / ফোল্ডার-উপসর্গ-যদি-কোনও -রেকারসিভ | wc -l


এটি 1000 টিরও বেশি কাজের জন্য এটি আমার জন্য 4258 গণনা করেছে
কিং অ্যান্ড্রু

লাইনগুলি ফাইলের সংখ্যার সাথে সরাসরি মিল করে না। কারণ তাদের কেবল একটি তারিখ এবং ডিরেক্টরি জন্য একটি সম্পূর্ণ লাইন আছে।
সিএমসিডিগ্রাগনকাই

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