Загрузка только имен объектных файлов AWS S3 и URL-адреса изображений в формате CSV

#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. Именно так вы достигаете своего варианта использования.