Проблема с загрузкой изображения в хранилище BLOB-объектов Azure - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь загрузить изображение в хранилище 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
})
}  )

1 Ответ

0 голосов
/ 31 декабря 2018

В соответствии с описанием README.md MantaCodeDevs/multer-azure-storage необязательное свойство fileName должно быть функцией, которая возвращает пользовательское имя файла в качестве имени BLOB-объекта, хранящегося в хранилище BLOB-объектов Azure.

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.

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
  })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...