我創建了一個API函數來與S3一起工作。我導入了模板招搖。部署完成後,我使用npm模塊aws-api-gateway-client對Node.js項目進行了測試。將本地文件上傳到API網關S3代理的正確代碼
它可以很好地工作:獲取桶列表,獲取桶信息,獲取一個項目,放入一個桶,放入一個純文本對象,但是我被封鎖了一個二進制文件。
首先,我確保ACL在S3上具有所有權限。其次,二進制支持還添加 圖像/ GIF 應用/八位字節流
的代碼片段如下所示。其行爲如下:
1)在invokeAPI之後,回調函數永遠不會被命中,在某個時候,Node.js項目沒有響應。沒有任何錯誤信息。文件大小(如圖像)非常小。 2)只有兩次,上傳似乎工作,但結果文件的大小比原始文件大(大約2M),所以文件已損壞。
你能幫我嗎?謝謝!
var filepathname = './items/';
var filename = 'image1.png';
fs.stat(filepathname+filename, function (err, stats) {
var fileSize = stats.size ;
fs.readFile(filepathname+filename,'binary',function(err,data){
var len = data.length;
console.log('file len' + len);
var pathTemplate = '/my-test-bucket/' +filename ;
var method = 'PUT';
var params = {
folder: '',
item:''
};
var additionalParams = {
headers: {
'Content-Type': 'application/octet-stream',
//'Content-Type': 'image/gif',
'Content-Length': len
}
};
var result1 = apigClient.invokeApi(params,pathTemplate,method,additionalParams,data)
.then(function(result){
//never hit :(
console.log(result);
}).catch(function(result){
//never hit :(
console.log(result);
});;
});
});
Hi @Kannaian,謝謝你的幫助。儘管我測試的文件只有幾M或幾KB,但聽起來API網關具有10M的這種限制,這將不符合我的要求,因爲我將使用大文件。我將轉向本地S3工作流程。 –