Установите тип содержимого на изображение в JavaScript v10 SDK Nodejs

#node.js #azure #azure-blob-storage

#node.js #azure #azure-blob-хранилище

Вопрос:

Когда я пытаюсь загрузить изображения с помощью Azure JS SDK версии 10, они отображаются как application / octetstream.

Это то, что я сделал изначально в соответствии с официальной документацией Azure

  async function uploadLocalFile(
    aborter,
    containerClient,
    filePath,
    file_guid,
  )

    filePath = path.resolve(filePath);  //Image file path
    const fileName = file_guid; //contains file name
    const blobClient = containerClient.getBlobClient(fileName);
    const blockBlobClient = blobClient.getBlockBlobClient();

    
    return await blockBlobClient.uploadFile(filePath, aborter);

  }
  

Это была загрузка изображений в приложение / octetstream

Затем я попробовал это, установив заголовки и попытавшись сделать это как изображение / jpeg, но все равно это делает тип содержимого как application / octetstream.

 
    filePath = path.resolve(filePath);
    const fileName = file_guid;
    const blobClient = containerClient.getBlobClient(fileName);
    const blockBlobClient = blobClient.getBlockBlobClient();

    const blobOptions = { blobHTTPHeaders: { blobContentType: 'image/jpeg' } };
    
    return await blockBlobClient.uploadFile(filePath, aborter, blobOptions);

  }
  

Есть ли какой-либо способ сделать тип содержимого изображений как image / jpeg при загрузке в хранилище больших двоичных объектов Azure?

Комментарии:

1. Используете ли вы Node @ v10 или Azure SDK @ v10?

2. Azure SDk версии 10 на nodejs версии 12

Ответ №1:

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

 const { BlobServiceClient, StorageSharedKeyCredential } = require("@azure/storage-blob");
const path = require("path");
// Enter your storage account name and shared key
const account = "xxxx";
const accountKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";

const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);
const blobServiceClient = new BlobServiceClient(
  `https://${account}.blob.core.windows.net`,
  sharedKeyCredential
);

const containerName = "container";

async function main() {
     const containerClient = blobServiceClient.getContainerClient(containerName);

    const filePath = path.resolve("C:\xxxxx\me.jpg");
    const fileName = "bbb";
    const blobClient = containerClient.getBlobClient(fileName);
    const blockBlobClient = blobClient.getBlockBlobClient();
    const blobOptions = { blobHTTPHeaders: { blobContentType: 'image/jpeg' } };
    const uploadBlobResponse =await blockBlobClient.uploadFile(filePath,blobOptions);
    
    console.log(`Upload block blob test.txt successfully`);
}

main();
  

введите описание изображения здесь