5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JSでS3からのファイルダウンロードに手間取ったのでメモ

Last updated at Posted at 2023-03-23

概要

aws-sdkのgetObjectを使用して、S3からファイルダウンロード行ったら
ファイルが壊れていた時のメモです

以下のサイトを参考にBlobを使用、リンクを生成しダウンロードできるようにしたかったのですが、
getObjectで取得したものをそのまま入れるとファイルが壊れてしまいました

ダウンロードはボタンをクリックしたときにファイルがダウンロードされるようにしています
getObjectを使用してデータを取得する処理は省略しています
s3Dataにs3から取得したデータを格納しています


const downloadButton = document.querySelector('.download-button');
downloadButton.addEventListener('click', () => {
  const blob = new Blob([s3Data]); 
  const link = document.createElement('a');
  link.download = 'test.txt';
  link.href = URL.createObjectURL(blob); 
  link.click(); 
  URL.revokeObjectURL(link.href);
}, false);

結論

const blob = new Blob([s3Data]);const blob = new Blob([Uint8Array.from(s3Data).buffer]);にしたところ、ファイルが壊れずにダウンロードできました

Blobでうまく変換ができていなかったのが原因でした

参考

  • aws-sdk getObject

  • Blobを使用したダウンロード処理

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?