簡體   English   中英

如何將 pdf 文件/blob 上傳到 S3?

[英]How do I upload pdf file/blob to S3?

我正在使用 react-pdf 庫,它為我生成了一個 blob 和 url,如文檔中所示: https://react-pdf.org/advanced#on-the-fly-rendering Blob object 從控制台復制:

{blob: Blob}
blob: Blob
size: 3597607
type: "application/pdf"
[[Prototype]]: Blob
[[Prototype]]: Object

我嘗試將其上傳到 S3。 前端代碼:

            const fileName = Date.now().toString() + ".pdf";
            const file = new File([blob], fileName);

            axios
              .post("api/upload-poster", {
                fileName,
                file,
              })
              .then(({ data }) => console.log(data));

后端代碼(nextjs 處理程序):

      const { fileName, file } = req.body;

      const params = {
        Bucket: "my-bucket-name",
        Key: fileName,
        Body: file,
        contentType: "application/pdf",
      };

      const uploaded = await S3.upload(params).promise();
      res.status(200).json({ uploaded });

我收到錯誤Error: Unsupported body payload object

根據AWS.S3.Upload的文檔,您需要傳遞一個緩沖區,blob object 或 stream。

將 blob object -而不是 blob URL - 作為參數的一部分傳遞回您的params並且您的代碼的 rest 應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM