O ile czegoś nie brakuje, wydaje się, że żaden z interfejsów API, które oglądałem, nie powie Ci, ile obiektów znajduje się w zasobniku / folderze S3 (prefiks). Czy jest jakiś sposób, aby policzyć?
155
O ile czegoś nie brakuje, wydaje się, że żaden z interfejsów API, które oglądałem, nie powie Ci, ile obiektów znajduje się w zasobniku / folderze S3 (prefiks). Czy jest jakiś sposób, aby policzyć?
Odpowiedzi:
Nie ma sposobu, chyba że ty
wymień je wszystkie w partiach po 1000 (co może być wolne i obciążać pasmo - amazon wydaje się nigdy nie kompresować odpowiedzi XML), lub
zaloguj się na swoje konto na S3 i przejdź do Konto - Użytkowanie. Wygląda na to, że dział rozliczeń dokładnie wie, ile obiektów przechowujesz!
Samo pobranie listy wszystkich obiektów zajmie trochę czasu i będzie kosztować trochę pieniędzy, jeśli przechowujesz 50 milionów obiektów.
Zobacz także ten wątek dotyczący StorageObjectCount - który znajduje się w danych użycia.
Interfejs API S3, aby uzyskać przynajmniej podstawy, nawet jeśli miał kilka godzin, byłby świetny.
źródło
Korzystanie z interfejsu wiersza polecenia AWS
lub
Uwaga: powyższe polecenie Cloudwatch wydaje się działać dla niektórych, a nie dla innych. Omówiono tutaj: https://forums.aws.amazon.com/thread.jspa?threadID=217050
Korzystanie z konsoli internetowej AWS
Możesz spojrzeć na sekcję metryczną Cloudwatch, aby uzyskać przybliżoną liczbę przechowywanych obiektów.
Mam około 50 milionów produktów, a ich liczenie zajęło ponad godzinę
aws s3 ls
źródło
aws s3 ls s3://mybucket/mydirectory/ --recursive | wc -l
Jest
--summarize
przełącznik, który zawiera podsumowanie informacji o zasobniku (np. Liczba obiektów, całkowity rozmiar).Oto poprawna odpowiedź przy użyciu AWS CLI:
Zobacz dokumentację
źródło
Total Objects: 7235
Total Size: 475566411749
- takie proste.Chociaż jest to stare pytanie, a opinie otrzymano w 2015 r., Obecnie jest to znacznie prostsze, ponieważ konsola internetowa S3 ma włączoną opcję „Pobierz rozmiar”:
Który zapewnia:
źródło
Jeśli używasz narzędzia wiersza poleceń s3cmd , możesz uzyskać rekurencyjną listę określonego zasobnika, wyprowadzając ją do pliku tekstowego.
Następnie w Linuksie możesz uruchomić wc -l na pliku, aby policzyć linie (1 linia na obiekt).
źródło
-r
W poleceniu jest--recursive
, więc powinien działać dla podfolderów, jak również.aws s3 ls
zamiast s3cmd, ponieważ jest szybszy. b.) W przypadku dużych łyżek może to zająć dużo czasu. Zajęło około 5 minut na 1 miliony plików. c.) Zobacz moją odpowiedź poniżej na temat korzystania z chmury.Istnieje teraz proste rozwiązanie z interfejsem API S3 (dostępne w kliencie AWS):
lub dla konkretnego folderu:
źródło
Illegal token value '(Contents[])]'
(wersja 1.2.9 aws-cli), gdy tylko używam--bucket my-bucket
iA client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist
kiedy używam--bucket s3://my-bucket
. (Zdecydowanie istnieje i ma ponad 1000 plików.)Możesz użyć wskaźników AWS Cloudwatch dla s3, aby zobaczyć dokładną liczbę dla każdego segmentu.
źródło
Przejdź do AWS Billing, następnie raporty, a następnie AWS Usage reports. Wybierz Amazon Simple Storage Service, a następnie Operation StandardStorage. Następnie możesz pobrać plik CSV zawierający UsageType o wartości StorageObjectCount, który zawiera liczbę elementów dla każdego segmentu.
źródło
Możesz łatwo uzyskać łączną liczbę i historię, przechodząc do zakładki "Zarządzanie" konsoli s3, a następnie klikając "Metryki" ... Zrzut ekranu zakładki
źródło
NumberOfObjects (count/day)
wykres? Byłoby lepiej, ponieważ jest to bezpośrednio związane z pytaniem. Na zrzucie ekranu pokazujesz,BucketSizeBytes (bytes/day)
które, choć przydatne, nie są bezpośrednio związane z problemem.Interfejs API zwróci listę w przyrostach co 1000. Sprawdź właściwość IsTruncated, aby zobaczyć, czy jest ich jeszcze więcej. Jeśli tak, musisz wykonać kolejne połączenie i przekazać ostatni otrzymany klucz jako właściwość Marker podczas następnego połączenia. Następnie kontynuowałbyś pętlę w ten sposób, aż IsTruncated ma wartość false.
Zobacz ten dokument Amazon, aby uzyskać więcej informacji: Iteracja wyników wielostronicowych
źródło
Stary wątek, ale nadal aktualny, ponieważ szukałem odpowiedzi, dopóki tego nie zrozumiałem. Chciałem policzyć pliki przy użyciu narzędzia opartego na GUI (tj. Bez kodu). Tak się składa, że używam już narzędzia o nazwie 3Hub do przenoszenia danych metodą przeciągnij i upuść do iz S3. Chciałem wiedzieć, ile plików mam w konkretnym segmencie (nie sądzę, że rozliczenie rozkłada to na segmenty).
Miałem 20521 plików w zasobniku i policzyłem pliki w mniej niż minutę.
źródło
Użyłem skryptu w języku Python ze strony scalablelogic.com (dodając rejestrację liczby). Działało świetnie.
źródło
W s3cmd po prostu uruchom następujące polecenie (w systemie Ubuntu):
źródło
Jeśli używasz interfejsu wiersza polecenia AWS w systemie Windows, możesz użyć programu
Measure-Object
PowerShell, aby uzyskać całkowitą liczbę plików, tak jakwc -l
w * nix.Mam nadzieję, że to pomoże.
źródło
Jednym z najprostszych sposobów zliczania liczby obiektów w s3 jest:
Krok 1: Wybierz folder główny Krok 2: Kliknij Akcje -> Usuń (oczywiście uważaj, nie usuwaj go) Krok 3: Poczekaj kilka minut, a pokaże Ci liczbę obiektów i ich całkowity rozmiar.
Głosuj w górę, jeśli znajdziesz rozwiązanie.
źródło
Żaden z interfejsów API nie da ci liczby, ponieważ tak naprawdę nie ma żadnego interfejsu API Amazon, który mógłby to zrobić. Musisz po prostu uruchomić zawartość listy i policzyć liczbę wyników, które zostaną zwrócone.
źródło
Z wiersza poleceń w AWS CLI użyj
ls plus --summarize
. To da ci listę wszystkich twoich przedmiotów i całkowitą liczbę dokumentów w określonym segmencie. Nie próbowałem tego z zasobnikami zawierającymi zasobniki podrzędne:Zajmuje to trochę czasu (wymienienie moich dokumentów 16 + K zajęło około 4 minut), ale jest szybsze niż liczenie 1K na raz.
źródło
A co z analizą klasy pamięci masowej S3 - Otrzymujesz interfejsy API, a także na konsoli - https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html
źródło
3Hub zostaje wycofane. Jest lepsze rozwiązanie, możesz użyć Transmit (tylko Mac), a następnie po prostu podłączasz się do swojego wiadra i wybierasz
Show Item Count
zView
menu.źródło
Możesz pobrać i zainstalować przeglądarkę s3 ze strony http://s3browser.com/ . Po wybraniu zasobnika w prawym środkowym rogu możesz zobaczyć liczbę plików w zasobniku. Ale rozmiar, który pokazuje, jest nieprawidłowy w bieżącej wersji.
Gubs
źródło
Najłatwiej jest użyć konsoli programisty, na przykład jeśli korzystasz z Chrome, wybierz Narzędzia programistyczne i możesz zobaczyć następujące, możesz albo znaleźć i policzyć lub wykonać jakieś dopasowanie, na przykład 280-279 + 1 = 2
...
źródło
Możesz potencjalnie użyć spisu Amazon S3, który da ci listę obiektów w pliku csv
źródło
Uważam, że narzędzie przeglądarki S3 jest bardzo użytkownika, zapewnia rekursywnie pliki i foldery oraz całkowitą liczbę i rozmiar dowolnego folderu
Link do pobrania: https://s3browser.com/download.aspx
źródło
Można to również zrobić za pomocą
gsutil du
(Tak, narzędzie Google Cloud)źródło
Możesz po prostu wykonać to polecenie cli, aby uzyskać całkowitą liczbę plików w zasobniku lub określonym folderze
Skanuj całe wiadro
możesz użyć tego polecenia, aby uzyskać szczegółowe informacje
Przeskanuj określony folder
źródło
Jeśli szukasz określonych plików, powiedzmy
.jpg
obrazów, możesz wykonać następujące czynności:źródło
Poniżej opisano, jak możesz to zrobić za pomocą klienta java.
źródło
Oto wersja boto3 skryptu Pythona osadzona powyżej.
źródło
aws s3 ls s3: // nazwa-zasobnika / prefiks-folderu-jeśli-jakiekolwiek --recursive | wc -l
źródło