在 azure 上传的文件是 0 咬

安库·维什诺伊

我正在尝试将图像上传到 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章