Как загрузить изображение в Azure Blob Storage с правильным типом контента - PullRequest
0 голосов
/ 19 апреля 2020

Я прочитал большую часть документации, предоставленной MS для загрузки файлов / изображений в Blob Storage. Прошло уже два дня, и я застрял. Я не нашел подходящего способа загрузить изображение с правильным типом контента. Файл / изображение загружено, но тип содержимого после загрузки в хранилище больших двоичных объектов изменяется на «application / octet-stream». Я хочу, чтобы это было 'image / png' или 'image / jpg' et c. для изображения.

Есть выборки из C# кода, но они бесполезны. Я пытаюсь использовать node.js

Используемая библиотека SDK: @ azure / storage-blob

Ссылки:

Content of the BLOB Container.

Пример кода:

const bc = new BlockBlobClient(
    rhcConfig.STORAGE_CONNECTION_STRING,
    rhcConfig.CONTAINER_NAME,
    `IMAGES/${fileName}`
  );

  // let result = await bc.uploadFile(_file);
  // console.log(result);

  const buff = Buffer.from(file, "base64");
  const stream = getStream(buff);
  const streamLength = buff.length;
  await bc.uploadStream(stream, streamLength, 1, { httpHeaderOptions });

httpHeaderOptions:

const httpHeaders = {
    "x-ms-blob-cache-control": "1000",
    "x-ms-blob-content-type": "image/png",
    "x-ms-blob-content-md5": `${md5Hash}`,
    "x-ms-blob-content-encoding": "compress",
    "x-ms-blob-content-language": "en",
    "x-ms-blob-content-disposition": "multipart/form-data",
  };
  const httpHeaderOptions = { blobHTTPHeaders: httpHeaders };

Спасибо сообществу !!

1 Ответ

1 голос
/ 20 апреля 2020

Предположим, что ваш httpHeaderOptions формат неправильный, вы можете обратиться к этому описанию интерфейса: BlobHTTPHeaders , ниже мой тестовый код.

const blobServiceClient = BlobServiceClient.fromConnectionString(connectionstr)

const containerClient=blobServiceClient.getContainerClient('test')
const blobclient=containerClient.getBlockBlobClient('test.jpg')
let fileStream = fs.createReadStream('E:\\dog.jpg');
const blobOptions = { blobHTTPHeaders: { blobContentType: 'image/jpg' } };
blobclient.uploadStream(fileStream,undefined ,undefined ,blobOptions)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...