Не удается загрузить большие двоичные объекты внутри папки с помощью Node.js SDK

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

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

Вопрос:

Я пытаюсь загрузить некоторые большие двоичные объекты в контейнер больших двоичных объектов в Azure.

Я добиваюсь успеха, когда файл находится в корневом контейнере, но не тогда, когда находится внутри папки.

 const folder = 'AZURE_FOLDER';

const filesToDownload =  [ 'icon.ico', 'images/cover.jpg', 'images/htmlstructure.png' ]

filesToDownload.forEach(blob => {
      service.download(containerName, blob, `${folder}/${blob}`)
});
  

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

ошибка: { Ошибка: ENOENT: нет такого файла или каталога, открыть ‘AZURE_FOLDER/images/cover.jpg ‘

ошибка: { Ошибка: ENOENT: нет такого файла или каталога, откройте ‘AZURE_FOLDER/images/htmlstructure.png’

Мой ответ ListBlobs:

 BlobResult {
  name: 'images/cover.jpg',
  creationTime: 'Wed, 03 Apr 2019 17:14:03 GMT',
  lastModified: 'Wed, 03 Apr 2019 17:14:03 GMT',
  etag: '0x8D6B857C5B2B355',
  contentLength: '299040',
  contentSettings: 
   { contentType: 'image/jpeg',
     contentEncoding: '',
     contentLanguage: '',
     contentMD5: 'JqJRnPltEsAhar YfKgEtQ==',
     cacheControl: '',
     contentDisposition: '' },
  blobType: 'BlockBlob',
  accessTier: 'Hot',
  accessTierInferred: true,
  lease: { status: 'unlocked', state: 'available' },
  serverEncrypted: 'true' }
BlobResult {
  name: 'images/htmlstructure.png',
  creationTime: 'Wed, 03 Apr 2019 17:14:02 GMT',
  lastModified: 'Wed, 03 Apr 2019 17:14:02 GMT',
  etag: '0x8D6B857C4ECA732',
  contentLength: '65835',
  contentSettings: 
   { contentType: 'image/png',
     contentEncoding: '',
     contentLanguage: '',
     contentMD5: 'uHsFKqK9csssX0XYt86dlA==',
     cacheControl: '',
     contentDisposition: '' },
  blobType: 'BlockBlob',
  accessTier: 'Hot',
  accessTierInferred: true,
  lease: { status: 'unlocked', state: 'available' },
  serverEncrypted: 'true' }
BlobResult {
  name: 'user.ico',
  creationTime: 'Wed, 03 Apr 2019 16:58:24 GMT',
  lastModified: 'Wed, 03 Apr 2019 16:58:33 GMT',
  etag: '0x8D6B8559B5CC9C8',
  contentLength: '179677',
  contentSettings: 
   { contentType: 'image/x-icon',
     contentEncoding: '',
     contentLanguage: '',
     contentMD5: 'sHZ3nvd9fyX09EkqQvDvLQ==',
     cacheControl: '',
     contentDisposition: '' },
  blobType: 'BlockBlob',
  accessTier: 'Hot',
  accessTierInferred: true,
  lease: { status: 'unlocked', state: 'available' },
  serverEncrypted: 'true' }
  

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

1. возможно, вам следует использовать Azure SDK для nodejs

2. Я уже использую, спасибо

Ответ №1:

Существует ли AZURE_FOLDER/images каталог? Если нет, вам нужно будет создать его с помощью fs модуля заранее.

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

1. Я создаю папку images, и это того стоит!

2. рад, что это сработало! Не забудьте принять ответ, если он вам помог 😉