Создание предопределенного URL для папки S3 в python - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь сгенерировать предварительно назначенный URL-адрес для папки S3 (которая сама содержит больше папок / файлов) и распределить ее между моими клиентами, чтобы они могли загрузить ее содержимое. то есть, нажав на ссылку, пользователи загрузят папку на свой локальный диск.

Однако в диалоге XML по-прежнему появляется ошибка «нет такого ключа».

Я использую client.generate_presigned_url () из boto3 sdk

def create_presigned_url(bucket, object):
    try:
        url = s3_client.generate_presigned_url(
            'get_object',
            Params={
                'Bucket': bucket,
                'Key': object
            },
            ExpiresIn=240,
            HttpMethod='GET'
        )
    except ClientError as e:
        print(e)
        return None
    return url

это сообщение об ошибке:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
   <Code>NoSuchKey</Code>
      <Message>The specified key does not exist.</Message>
         <Key>output/BARNES/070419/APR19BAR/</Key>
         <RequestId>E6BE736FE945FA22</RequestId>
         <HostId>
      hk3+d+***********************************************************+EO2CZmo=
          </HostId>
</Error>

1 Ответ

3 голосов
/ 25 июня 2019

S3 не имеет понятия «папки». То, что вы действительно пытаетесь сделать здесь, - это создать предварительно назначенный URL для нескольких ключей , что также невозможно. Если вам абсолютно необходимо совместно использовать один URL для нескольких файлов, вам нужно сжать их в один объект, а затем поделиться ключом этого объекта с помощью предварительно назначенного URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...