URL-адрес файла на S3 не изменяется.
Обычно вы бы не пользовались той формой, которую имеете, а скорее: https://my-bucket.s3.amazonaws.com/path/to/file.png - где путь/to/file.png - это ключ. (см. виртуальные размещенные совместимые имена ковша).
Проблема заключается в том, что этот URL-адрес приведет к 404, если лицо, запрашивающее его, не имеет правильных учетных данных, или ведро является общедоступным.
Вы можете использовать такой URL и подписывать его (используя один вызов в каком-то SDK) с любыми учетными данными, которые имеют доступ только для чтения к файлу, что приведет к ограничению по времени URL-адреса, который может использовать любой пользователь. Когда URL подписывается, он добавляет дополнительные аргументы, так что AWS может сказать, что это был уполномоченный пользователь, который составил URL.
ИЛИ
Вы можете использовать API AWS, и использовать учетные данные, которые вы должны напрямую загрузить файл.
Это зависит от того, что вы делаете.
Например, чтобы создать веб-страницу со ссылками на файлы, вы можете создать кучу ограниченных по времени URL-адресов, по одному для каждого файла. Эта страница будет сгенерирована кодом на вашем сервере при входе пользователя в систему и наличии каких-либо учетных данных IAM.
Или, если вы хотите написать инструмент для управления репозиторией S3, вы можете просто загрузить/загрузить и т. Д. Напрямую с помощью API.
Так что я не могу связаться с моим-bucket.s3 ... и добавьте секретный ключ пользователя IAM и Если я правильно понимаю, единственный способ, которым я могу получить объекты, чтобы быть видимым для аутентифицированного пользователя IAM по прямой ссылке, - написать скрипт, который служит файлу с использованием S3 API? – doremi