在Azure Blob存储中上载映像时出现问题

问题描述 投票:0回答:1

我正在尝试将图像上传到azure blob存储,面临的问题是图像成功上传但是azure上的图像名称是由azure本身随机生成的,我想从代码中自己命名图像

以下是我正在使用的代码

var multer = require('multer')
var MulterAzureStorage = require('multer-azure-storage')
var upload = multer({
storage: new MulterAzureStorage({azureStorageConnectionString:
'DefaultEndpointsProtocol=https;AccountName=mystorageaccount;
AccountKey=mykey;EndpointSuffix=core.windows.net',
containerName: 'photos',
containerSecurity: 'blob',
fileName : ?//how to use this options properties
})
}  )
node.js azure express azure-storage multer
1个回答
1
投票

根据README.mdMantaCodeDevs/multer-azure-storage的描述,fileName可选属性必须是一个函数,它返回一个自定义文件名作为存储在Azure Blob存储中的blob名称。

enter image description here

否则,当fileName不是函数时,它将使用下面的默认blobName函数生成唯一名称以避免命名冲突。

const blobName = (file) => {
    let name = file.fieldname + '-' + uuid.v4() + path.extname(file.originalname)
    file.blobName = name
    return name
}

因此,我使用下面的示例代码对其进行测试,它适用于将1.png文件作为blob上载到Azure Blob存储中。

var getFileName = function(file) {
    return '1.png'; 
    // or return file.originalname;
    // or return file.name;
}

var upload = multer({
  storage: new MulterAzureStorage({
    azureStorageConnectionString: 'DefaultEndpointsProtocol=https;AccountName=<your account name>;AccountKey=<your account key>;EndpointSuffix=core.windows.net',
    containerName: 'test',
    containerSecurity: 'blob',
    fileName: getFileName
  })
});
© www.soinside.com 2019 - 2024. All rights reserved.