Невозможно выполнить массовую загрузку, поскольку файл "File.csv" не может быть открыт. Код ошибки операционной системы 5 (доступ запрещен.) - PullRequest
0 голосов
/ 11 октября 2019

У меня возникает следующая проблема при попытке доступа к хранилищу BLOB-объектов Azure из базы данных SQL Azure Sql и загрузке одного большого двоичного объекта / изображения. Получение выше. Я настроил SAS. Вот мои выводы:

  • Если контейнер является общедоступным, приведенный ниже sql работает без учетных данных
  • Когда он является приватным, можно получить доступ к BLOB-объекту через URL-адрес BLOB-объекта из браузера (используя токен sas)
  • Если я пытаюсь получить к нему доступ через базу данных Azure Sql (тот же токен), я получаю ту же ошибку, что и выше:

"Не удалосьвыполнить запрос. Ошибка: не удается выполнить массовую загрузку, поскольку не удалось открыть файл «POC.png». Код ошибки операционной системы 5 (доступ запрещен.). "

CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28....'
go
CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage 
WITH ( TYPE = BLOB_STORAGE, 
LOCATION = 'https://poc.blob.core.windows.net/poc-container',
CREDENTIAL = MyAzureBlobStorageCredential); 
go    
INSERT INTO file111 (col2)
SELECT BulkColumn FROM OPENROWSET(
 BULK  'POC.png',
DATA_SOURCE = 'MyAzureBlobStorage',
 SINGLE_BLOB
) AS DataFile;

1 Ответ

1 голос
/ 13 октября 2019

Я сделал следующее:

  • удалил все ненужные разрешения и оставил только чтение и список;
  • убедился, что Start / End DateTime для сгенерированного с несколькими днями впрошлое / достаточно далеко в будущем;
  • убедился, что {container} {blobname} - это те же строчные / заглавные буквы, что и в контейнере;
  • в конце нет обратной косой чертыРАСПОЛОЖЕНИЕ

и все заработало. Любой из пунктов маркера, который может вызвать сообщение об ошибке выше.

...