簡體   English   中英

使用Node.js將IOS中的base64映像上傳到S3

[英]Uploading a base64 image from IOS to S3 using Node.js

我有以下代碼使用node.js將圖像從ios設備上傳到AWS S3:

  var buf = new Buffer(req.body.image.replace(/^data:image\/\w+;base64,/, ""),'base64')

  var s3bucket = new AWS.S3({params: {Bucket: 'forplay-static', Key: 'test.png'}});
  s3bucket.putObject(buf, function(err, data) {
    if (err) {
      return res.send({ success: false, err: err });
    } else {
      return res.send({ success: true });
    }
  });

我發布的圖像是: http : //pastebin.com/kcmXJbRd

這將在err中返回以下錯誤:

{ "code": "UnexpectedParameter", "name": "UnexpectedParameter" }

將base64映像上傳到S3的正確方法是什么?

您無法使用鑰匙創建存儲桶。 密鑰標識存儲桶中的資源。 不知道您使用的是哪種AWS客戶端,因此我不確定它應該是什么樣子,但可能是這樣的:

var buf = new Buffer(req.body.image.replace(/^data:image\/\w+;base64,/, ""),'base64')

var s3 = new AWS.S3();
s3.putObject({Bucket: 'forplay-static', Key: 'test.png', Body: buf}, function(err, data) {
  if (err) {
    return res.send({ success: false, err: err });
  } else {
    return res.send({ success: true });
  }
});

編輯:現在,我知道aws-sdk,我已經根據此處的文檔更改了上面的代碼。 我只是跳過了createBucket步驟。 您將bucket和key參數傳遞給putObject方法,而不是AWS.S3構造函數。

暫無
暫無

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

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