Я пытаюсь использовать AzCopy 5.1.0 скачать одного блоб из контейнера Blob Storage с использованием SAS, порожденную Storage Explorer:Как скачать Blob с помощью SAS
https://myaccount.blob.core.windows.net/mycontainer/[blob-uuid]?st=2016-11-23T18%3A26%3A00Z&se=2016-11-24T18%3A26%3A00Z&sp=rl&sv=2015-12-11&sr=b&sig=[signature]
azcopy /Source:https://myaccount.blob.core.windows.net/mycontainer /SourceSAS:"?st=2016-11-23T18%3A26%3A00Z&se=2016-11-24T18%3A26%3A00Z&sp=rl&sv=2015-12-11&sr=b&sig=[signature]" /Dest:"c:\data"
Если/Источник должен быть контейнером blob, и/SourceSAS должен быть токеном SAS , тогда где-то мне нужно передать фактический ключ Blob ([blob-uuid]).
IMHO, это должно быть/SourceKey, но с указанием моего ключа blob возвращается ошибка: «Прилагаемый ключ хранения (SourceKey) не является допустимой строкой Base64». Это согласуется с помощью командной строки, которая описывает этот параметр как «ключ учетной записи хранилища».
Единственный другой кандидат, который я могу найти, это/Pattern, но это похоже на случай загрузки капель, перечисляя содержимое контейнера. Это похоже на ошибку 403, которую я получаю, когда я укажу здесь конкретный ключ blob; контейнер является закрытым.
В любом случае AzCopy жалуется, что «Сервер не смог аутентифицировать запрос. Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись». Это, по моему опыту, указывает на то, что исходный URI, на который была сгенерирована подпись SAS, не восстанавливается должным образом.
Я могу использовать оригинальный SAS URI напрямую через curl, так что речь не идет о непоследовательности подписи.
Я также попытался создать UAS UAS программно с помощью SDK, поэтому я могу указать политику общего доступа, но это тоже не работает. Я все еще думаю, что AzCopy нуждается в недостающей части URI SAS.
Вы предлагаете «ключ» для параметра/SourceKey - это токен SAS без предшествующего вопроса? Поскольку это вызывает ту же ошибку, которую я описал: «Приведенный ключ хранения (SourceKey) не является допустимой строкой Base64« Справка из командной строки: azcopy/?: SourceKey описывает параметр таким образом: '/ SourceKey: Задает хранилище ключ учетной записи для исходного ресурса », который согласуется с сообщением об ошибке, но не согласуется с общей операцией загрузки. –
ayang
То, что написал астайков выше, верно, но позвольте мне пояснить больше для вашего примера, вы можете назвать AzCopy следующим: azcopy /Source:https://myaccount.blob.core.windows.net/mycontainer/SourceSAS: "? St = 2016-11-23T18% 3A26% 3A00Z & se = 2016-11-24T18% 3A26% 3A00Z & sp = rl & sv = 2015-12-11 & sr = b & sig = [signature] "/ Dest:" c: \ data "/ Pattern:" [blob- uuid] « –
В« sr = b »вы используете блок управления SAS вместо контейнера SAS, поэтому, пожалуйста, убедитесь, что ваш AzCopy обновлен до последней версии, поскольку старый AzCopy не поддерживает blob SAS в качестве источника SAS. –