Загрузка из Amazon S3 Bucket с именем файла - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь загрузить файл с amazon s3, но с другим именем. то есть не имя сохраненного файла, у которого есть метки времени attach_to_it. Но если я скачаю его с s3.getObject

  s3.getObject({
    Key: fileKey,
    Bucket: `/${albumBucketName}`,
    //ResponseContentDisposition: `attachment; filename="${fileKey}"`,
    //ResponseContentType: "audio/wav"
  }, function (
    err,
    data
  ) {
   ....
});

не позволяет загрузке обрабатываться браузером. так что я не получу прогресс загрузки в целом. Я не хочу обрабатывать процесс загрузки в моем приложении. Я хочу скачать его из браузера. Я не использовал URL-подход, потому что он не позволяет мне указать имя для загружаемого файла.

EDIT: Для этого есть решение, которое дает атрибут загрузки тегов привязки с указанием имени файла в нем. но это не будет работать в IOS Safari. но все же я не хочу потерять доступность этой функции для какого-то пользователя.

1 Ответ

1 голос
/ 15 марта 2019

Эта часть находится на правильном пути:

ResponseContentDisposition: `attachment; filename="${desired_filename_here}"`,

... но вместо s3.getObject() вам нужно s3.getSignedUrl().При этом создается URL-адрес, который содержит встроенные учетные данные в формате, который разрешает доступ к этому одному объекту, но не позволяет повторно использовать учетные данные для каких-либо других целей.Передайте этот URL в браузер, и файл будет загружен с нужным именем.

Вы можете использовать ResponseContentDisposition с s3.getSignedUrl().

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