SharedKeyCredential не является конструктором - Azure Хранилище BLOB-объектов + Nodejs - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь удалить изображение в моем контейнере aucitonImages, но когда я выполняю функцию из почтальона, я получаю SharedKeyCredential is not a constructor Я следую документации и думаю, что у меня все настроено , но я не вижу, что отличается в моем коде от документов. Я ценю любую помощь!

app.delete("/api/removeauctionimages", upload, async (req, res, next) => {
  const { ContainerURL, ServiceURL, StorageURL, SharedKeyCredential } = require("@azure/storage-blob");
  const credentials = new SharedKeyCredential(process.env.AZURE_STORAGE_ACCOUNT, process.env.AZURE_STORAGE_ACCESS_KEY);
  const pipeline = StorageURL.newPipeline(credentials);
  const serviceURL = new ServiceURL(`https://${STORAGE_ACCOUNT_NAME}.blob.core.windows.net`, pipeline);
  const containerName = "auctionImages";
  const blobName = "myimage.png";



  const containerURL = ContainerURL.fromServiceURL(serviceURL, containerName);
  const blockBlobURL = BlockBlobURL.fromContainerURL(containerURL, blobName);
  await blockBlobURL.delete(aborter)
  console.log(`Block blob "${blobName}" is deleted`);

});

1 Ответ

2 голосов
/ 26 марта 2020

На основании документации SDK версии 12.1.0 here, похоже, что Microsoft изменила SharedKeyCredential на StorageSharedKeyCredential.

Можете ли вы попробовать это?

Также, пожалуйста, посмотрите образцы этой версии SDK здесь: https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/storage/storage-blob/samples/javascript.


Вот код, который я написал, используя v12.1.0 Node SDK:

const { StorageSharedKeyCredential, BlobServiceClient } = require("@azure/storage-blob");
const sharedKeyCredential = new StorageSharedKeyCredential(process.env.AZURE_STORAGE_ACCOUNT, process.env.AZURE_STORAGE_ACCESS_KEY);


const blobServiceClient = new BlobServiceClient(
  `https://${process.env.AZURE_STORAGE_ACCOUNT}.blob.core.windows.net`,
  sharedKeyCredential
);

const containerName = `temp`;
const blobName = 'test.png';
const containerClient = blobServiceClient.getContainerClient(containerName);
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.delete();
...