我正在尝试将图像上传到 azure blob 存储。它成功了,但是,我上传的图像在我的天蓝色 blob 存储中出现了 0 咬。
var fs = require('fs');
const fileUpload = (req, res, next) => {
console.log(req.files.file)
var blobSvc = azure.createBlobService();
var file = req.files.file.tempFilePath;
var stream = fs.createReadStream(file)
var dataLength = 0;
// using a readStream that we created already
stream
.on('data', function (chunk) {
dataLength += chunk.length;
})
.on('end', function () {
console.log('The length was:', dataLength);
});
blobSvc.createBlockBlobFromStream("image", req.files.file.name, stream, dataLength, function (error, result, response) {
if (!error) {
console.log('ok Blob uploaded')
console.log(result)
console.log(response)
} else {
console.log(error)
}
})
}
module.exports = fileUpload
这就是我从前端收到的 req.files.file obj 的方式。
file: {
name: 'test.png',
data: <Buffer >,
size: 184332,
encoding: '7bit',
tempFilePath: '/tmp/tmp-1-1585187683435',
truncated: false,
mimetype: 'image/png',
md5: 'b8532c65a5c1ba95bbe89b6589b94a6c',
mv: [Function: mv]
}
您不必指定长度,您可以尝试createWriteStreamToBlockBlob。
代码如下所示:
var azure = require('azure-storage');
var blobService = azure.createBlobService();
var stream = fs.createReadStream(fileNameTarget).pipe(blobService.createWriteStreamToBlockBlob(containerName, blobName, { blockIdPrefix: 'block' }));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句