我正在尝试将图像上传到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
})
} )
根据README.md
对MantaCodeDevs/multer-azure-storage
的描述,fileName
可选属性必须是一个函数,它返回一个自定义文件名作为存储在Azure Blob存储中的blob名称。
否则,当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
})
});