Я хочу загружать файлы в хранилище BLOB-объектов НЕ КАК ПОТОКИ (буфер, base64), НО КАК оригинальный файл (jpg, png jpeg) - PullRequest
0 голосов
/ 30 января 2020

Мне не удается найти способ загрузки файла не в виде потока (буфер, base64), а в виде файла (png, jgeg, jpg) в Azure BLOB-объект хранилища.

Мой код потока

1004 *

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Вы можете указать тип контента в опциях

  await blockBlobClient.uploadStream(buffer, buffer.byteLength, 10, {
    blobHTTPHeaders: {
      blobContentType: "image/jpeg"
    }
  })

0 голосов
/ 30 января 2020

Похоже, что вы использовали @azure/storage-blob и ваш код вдохновлен Create a blob by uploading data to.

Есть функция uploadFile из BlockBlobClient, которые могут помочь напрямую загрузить локальный файл в Azure Blob Storage, как показано на рисунке ниже.

enter image description here

Вот мой пример кода.

const { BlobServiceClient, StorageSharedKeyCredential } = require("@azure/storage-blob");

// Enter your storage account name and shared key
const account = "<your account name>";
const accountKey = "<your account key>";

// Use StorageSharedKeyCredential with storage account and account key
// StorageSharedKeyCredential is only avaiable in Node.js runtime, not in browsers
const sharedKeyCredential = new StorageSharedKeyCredential(account, accountKey);
const blobServiceClient = new BlobServiceClient(
  `https://${account}.blob.core.windows.net`,
  sharedKeyCredential
);

var containerName = '<your container name>';
var blobName = '<your blob name>';

const containerClient = blobServiceClient.getContainerClient(containerName);
const blockBlobClient = containerClient.getBlockBlobClient(blobName);

var filePath = '<your local file path>';
blockBlobClient.uploadFile(filePath);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...