Команда AzCopy Sync не работает с ключом доступа, но передает ключ SAS, когда контейнер является частным

У меня есть команда синхронизации Azcopy. Это проходит, когда я использовал ключ SAS. Но терпит неудачу, когда я использую ключ доступа. Ключ доступа работает, когда большой двоичный объект является общедоступным. Почему ключ доступа не работает, если большой двоичный объект является закрытым?

Я запускаю команду с виртуальной машины, виртуальная сеть которой разрешена в выбранных сетях. И общий доступ к блобу отключен.

Вот как я передаю оба ключа

"https://mystorage.blob.core.windows.net/container?sv=KEY"

Это ошибка, которую я получаю

RESPONSE ERROR (ServiceCode=PublicAccessNotPermitted) =====
 RESPONSE Status: 409 Public access is not permitted on this storage account.

Не могли бы вы предоставить свою команду, когда вы делаете это с ключом доступа?

Jim Xu 21.12.2020 02:38

@JimXu отредактировал вопрос, добавив ключ

Blue Clouds 21.12.2020 12:44

У вас есть обновления?

Jim Xu 24.12.2020 09:05

Я отправляю новый ответ. Пожалуйста, проверь это.

Jim Xu 24.12.2020 09:44
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
4
4 471
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Согласно предоставленной вами информации, вы хотите использовать команду azcopy для синхронизации файла с подписями общего доступа. Если это так, подписи общего доступа должны быть похожи на sv=2019-02-02&ss=bf&srt=s&st=2019-08-01T22%3A18%3A26Z&se=2019-08-10T02%3A23%3A26Z&sr=b&sp=rw&spr=https&sig=<>. Для получения более подробной информации, пожалуйста, обратитесь к здесь и здесь.

Например

  1. Создайте токен sas через портал Azure.

  2. Синхронизировать

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>?<the sas token you copy in step1>' --recursive

«вы хотите использовать команду azcopy для синхронизации файла с подписями общего доступа» это неверно. Это работает

Blue Clouds 24.12.2020 09:11

@BlueClouds Не могли бы вы сказать мне, что вы хотите реализовать?

Jim Xu 24.12.2020 09:15

Используйте ключ доступа вместо ключа sas, когда большой двоичный объект является закрытым

Blue Clouds 24.12.2020 09:16

@BlueClouds Команда azcopy sync не поддерживает авторизацию с ключом доступа. Дополнительные сведения см. на странице learn.microsoft.com/en-us/azure/storage/common/…

Jim Xu 24.12.2020 09:21

Это ответ, который я искал. Может ли это быть опубликовано как ответ?

Blue Clouds 24.12.2020 09:36
Ответ принят как подходящий

когда мы используем команду azcopy sync для синхронизации файлов между хранилищем BLOB-объектов Azure или между BLOB-объектами Azure и локальными пространствами, она не поддерживает проверку подлинности с помощью ключа доступа. Он просто поддерживает аутентификацию SAS или OAuth. Для получения более подробной информации, пожалуйста, обратитесь к здесь.

Например (я использую аутентификацию SAS)

  1. Создайте токен sas через портал Azure.

  2. Синхронизировать

azcopy sync '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>?<the sas token you copy in step1>' --recursive

Другие вопросы по теме

Хранилище BLOB-объектов Azure: размер BLOB-объекта источника Azure устанавливается равным нулю, когда я загружаю BLOB-объект с помощью API DownloadRange
Повторная синхронизация событий AppCenter с AppInsight
Ключ SAS службы хранилища Azure устаревает до истечения срока действия
Обнаружены конфликтующие имена столбцов разделов Pyspark Databricks
C# Azure BlobTrigger -> получить URL-адрес загруженного большого двоичного объекта
Восстановить моментальный снимок лазурного BLOB-объекта с помощью библиотеки С#
Функция Azure подключается к локальному SQL-доступу, отказано в доступе
Функция Azure, написанная на java, выдает FailureException: OutOfMemoryError: Java-куча spaceStack при распаковке файла размером > 80 МБ
Журнал хвостового контейнера BLOB-объектов Azure с помощью Powershell
Databricks/pyspark: как рекурсивно получить все полные пути к каталогам (имеющие хотя бы один файл в качестве содержимого) из хранилища BLOB-объектов Azure