#python #amazon-web-services
#python #amazon-веб-сервисы
Вопрос:
Я разместил файлы в корзине AWS s3, мне нужны только все URL-адреса объектов корзины S3 в файле CSV
Пожалуйста, предложите
Комментарии:
1.
S3 Inventory
или несколько запросов списка, пока не будут перечислены все объекты и префиксы.
Ответ №1:
Вы можете получить все URL-адреса объектов S3, используя AWS SDK для S3. Во-первых, что вам нужно сделать, это прочитать все элементы в корзине. Вы можете использовать код Python, аналогичный этому Java-коду (вы можете перенести логику):
ListObjectsRequest listObjects = ListObjectsRequest
.builder()
.bucket(bucketName)
.build();
ListObjectsResponse res = s3.listObjects(listObjects);
List<S3Object> objects = res.contents();
for (ListIterator iterVals = objects.listIterator(); iterVals.hasNext(); ) {
S3Object myValue = (S3Object) iterVals.next();
System.out.print("n The name of the key is " myValue.key());
}
Затем выполните итерацию по списку и получите ключ, как показано выше. Для каждого объекта вы можете получить URL-адрес, используя код Python, аналогичный этому:
GetUrlRequest request = GetUrlRequest.builder()
.bucket(bucketName)
.key(keyName)
.build();
URL url = s3.utilities().getUrl(request);
System.out.println("The URL for " keyName " is " url.toString());
Поместите каждое значение URL в коллекцию, а затем запишите коллекцию в формат CSV. Именно так вы достигаете своего варианта использования.