Загрузка файлов в хранилище MS Azure

Мне нужно загрузить файлы docx в хранилище MS Azure, сейчас я просто использую Postman для его тестирования. Я получил ответ 201 и вижу, что файлы успешно загружены, но когда я пытаюсь их скачать (вручную) они все битые. Я допустил какую-то ошибку в запросе, может кто-нибудь проверить, пожалуйста?

cURL(заменены некоторые детали):

curl --location --request PUT 'https://mycompany.blob.core.windows.net/mycontainer/test10.docx?SAS_token' \
--header 'x-ms-date: 2024-04-30T11:17:08.494Z' \
--header 'Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document' \
--header 'Content-Length: 17274' \
--header 'x-ms-version: 2020-04-08' \
--header 'x-ms-blob-type: BlockBlob' \
--form '=@"/Users/user/Desktop/folder/test.docx"'

Ответ был в порядке, также я вижу файл в контейнере:

Но при загрузке файл ломается:

Кроме того, если я загружаю его вручную, он работает. Итак, я уверен, что проблема где-то в PUT-запросе, который я использую, или где-то в настройках безопасности.

Спасибо.

Как установить 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
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема связана со следующей строкой в ​​вашем запросе:

--form '=@"/Users/user/Desktop/folder/test.docx"'

По сути, вы отправляете файл с помощью multipart/form-data, который на самом деле не поддерживается в хранилище Azure. Вам нужно будет отправить необработанные данные.

Пожалуйста, попробуйте заменить параметр --form на параметр -T и укажите путь к файлу.

Ваша команда будет примерно такой:

curl --location --request PUT 'https://mycompany.blob.core.windows.net/mycontainer/test10.docx?SAS_token' \
--header 'x-ms-date: 2024-04-30T11:17:08.494Z' \
--header 'Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document' \
--header 'Content-Length: 17274' \
--header 'x-ms-version: 2020-04-08' \
--header 'x-ms-blob-type: BlockBlob' \
-T '/Users/user/Desktop/folder/test.docx'

Спасибо чувак! Ценю!

M. Khromov 03.05.2024 10:05

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

Здравствуйте, в Microsoft Fabric я не могу настроить соединение с базой данных SQL Server. это показывает экземпляр ошибки, связанный
Проблема с созданием URL-адреса SAS хранилища BLOB-объектов Azure с управляемым удостоверением
Образ Docker не обновляется в реестре контейнеров Azure через gitlab
Почему я получаю сообщение «400 — неверный запрос» при запросе токена доступа из Azure B2C с использованием потока ROPC?
Ошибка PermissionDenied API пользовательского зрения Azure при использовании define_image в Python
Документы OpenApi не создаются для функций Azure
Устойчивая функция Azure с использованием модели программирования Python V2 без вызова Activity_trigger
Уменьшите CosmosDB до менее 10 000 ЕЗ/с. Сколько времени это займет?
Как исправить внутреннюю ошибку: ожидаемое значение не должно быть ни нулевым, ни неопределенным: functionName при создании проекта функций Azure?
Невозможно увидеть мои сообщения журнала ниже, чем «Предупреждение» на Azure Monitor