curl не может загрузить файл, но браузер может

curl не может загрузить файл, но браузер может

Пример URL-адреса:https://xxxxxxxxxx.s3.amazonaws.com/xxxx-xxxx-xxxx-xxxx/xxxxxxxxxxxxx/x?AWSAccessKeyId=AKIAIFKEBR4CLVTDYSLA&Signature=Kv%2B859dJ2eUmLgHdkT%2F9nUJEeRM%3D&Expires=1922517562

Я пытался декодировать %XX, но безуспешно.

Я тоже пробовал aws s3 cp s3://xxxxxxxxxx/xxxx-xxxx-xxxx-xxxx/xxxxxxxx... - --recursive, но Streaming currently is only compatible with non-recursive cp commandsмне нужно транслировать несколько файлов с S3.

Используя wgetя получаю ту же самую ошибку 403.

URL-адрес из s3_client.generate_presigned_url.

решение1

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

[user@localhost ~]# curl 'https://xxxxxxxxxx.s3.amazonaws.com/xxxx-xxxx-xxxx-xxxx/xxxxxxxxxxxxx/x?AWSAccessKeyId=AKIAIFKEBR4CLVTDYSLA&Signature=Kv%2B859dJ2eUmLgHdkT%2F9nUJEeRM%3D&Expires=1922517562'

Ключ — одинарные кавычки.

решение2

Ага, я обнаружил, что curl может загружать URL-адрес без кавычек ( /вместо %2F), если такой URL-адрес заключен в «двойные кавычки».

Связанный контент