【发布时间】:2020-09-04 10:32:51
【问题描述】:
目前我正在使用像这样的 formdata 从 Angular 作为 blob 发送文件
uploadFiles(file) {
let testData: FormData = new FormData();
testData.append('file_upload', file, file.name);
console.log("TESTDATA", file);
console.log(file);
return this.http
.post<{ message: string; listingId: string; creator: string }>(
environment.azure_function_url + `/UploadFilesTest`,
testData
);
}
我可以通过answer 在 azure 函数中接收它
在我的天蓝色函数中,但我不确定如何从这里到达天蓝色 blob。我不确定将什么传递给 blobService.createBlockBlobFromLocalFile 以将文件放入 blob 存储。我尝试传递 parts 和 image 变量,但它一直说 Parameter blob for function _createBlobFromLocalFile should be a non-empty string
如果我在底部返回注释掉的代码,那么前端返回
这对我来说似乎很有希望,我在正确的轨道上,但我只是不知道如何让它与createBlockBlobFromLocalFile() 函数一起玩得很好。感谢您的帮助!
var multipart = require("parse-multipart");
var azure = require('azure-storage');
var blobService = azure.createBlobService(process.env.AZURE_STORAGE_AUCTIONIMAGESACCOUNT, process.env.AZURE_STORAGE_AZURE_STORAGE_AUCTIONIMAGESACCOUNT_ACCESS_KEY);
module.exports = function (context, req) {
// encode body to base64 string
var bodyBuffer = Buffer.from(req.body);
var boundary = multipart.getBoundary(req.headers['content-type']);
// parse the body
var parts = multipart.Parse(bodyBuffer, boundary);
console.log(parts)
let image = [{ name: parts[0].filename, type: parts[0].type, data: parts[0].data.length }];
// context.res = { body: { name: parts[0].filename, type: parts[0].type, data: parts[0].data.length, "TEST": "TEST" } };
// context.done();
// return;
blobService.createBlockBlobFromLocalFile('auctionimages', image, 'image.png', function (error, result, response) {
if (!error) {
// file uploaded
}
});
};
【问题讨论】:
-
是否使用
formidable选项?几天前我在使用该软件包时回答了一个类似的问题。 -
只要我可以让它工作,我不在乎它是如何完成的,哈哈。我确实读过 azure 函数在处理文件时有点棘手,所以我不确定强大是否会起作用,但我不是专家
-
看看这是否有帮助:stackoverflow.com/questions/61423408/….
-
Azure 函数的设置略有不同。该答案中的人也提到了这个
I had to tune it for Azure functions,所以我需要一个以天蓝色功能为中心的解决方案。我不确定这对我有用 -
@user6680 请参考medium.com/@rkmusic75/…
标签: node.js azure azure-storage