Hej, kojarzy może ktoś w jaki sposób można pobrać wiele plików z Azure Blob Storage?
Póki co mam skrypcik pythonowy ale każdorazowo musze uderzać po następny plik do bloba.
Nie znalazłem rozwiązania w samym pythonie lub może użyć jakiegoś narzędzia w połączeniu z pythonem.
Załóżmy że jest milion plików na storage
Pobranie wiele plików z Azure
- Rejestracja: dni
- Ostatnio: dni
- Postów: 28
- Rejestracja: dni
- Ostatnio: dni
- Postów: 606
Nie ma takiej możliwości. Pliki (a raczej obiekty/bloby) pobierasz pojedynczo.
Można to oczywiście zrównoleglić ale dalej będzie strzał o pobranie każdego bloba.
Załóżmy że jest milion plików na storage
To jeśli potrzebujesz tego miliona to trzeba go pobrać. Nie powinno to powodować wielkiego wyzwania dla samego storage bo w zależności od regionu obsłuży od 20k do 40k rps.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1022
https://github.com/rclone/rclone wspiera coś ala rsync, tylko dla różnych cloud storage
Jak chcesz maksimum prostoty to możesz użyć FUSE https://rclone.org/commands/rclone_mount/ . Dzieki temu twój cloud storage będzie widoczny jako system plików na twoim systemie i możesz zrobić generalnie wszystko co oczekujesz od systemu plików
- Rejestracja: dni
- Ostatnio: dni
- Postów: 480
Pytanie co chcesz osiągnąć. Jeśli chcesz zrobić kopię w Azure to masz AzCopy.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 5023
Nie znam detali API, ale, imo, rozwiązaniem będzie async I/O:
https://docs.python.org/3/library/asyncio.html
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
Można pobrać wiele plików na raz i jest do tego dedykowane sdk. https://learn.microsoft.com/en-us/python/api/azure-storage-blob/azure.storage.blob.blobclient?view=azure-python#azure-storage-blob-blobclient-download-blob (Hint, parametr max_concurrency).
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1628
ledi12 napisał(a):
Hint, parametr max_concurrency).
This option does not affect the underlying connection pool, and may require a separate configuration of the connection pool.