curl не может скачать файл, но браузер может

1

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

Я пытался декодировать% 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'

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

apocalysque
источник
Как выясняется - это не работает для всех случаев ... Любой другой трюк?
Виталий Зданевич
На какие случаи это не работает? Если вы делаете какую-либо переменную в URL, она не будет работать между одинарными кавычками.
Апокалипсис
Прекрасно работает для меня. Получал отказано в доступе без одинарных кавычек. Спасибо!
Джошуа Пинтер
-1

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

Виталий Зданевич
источник