Я использую следующий код для получения инструкций по загрузке с помощью uploadUrl:
public UploadInstruction getUploadUrl() {
final var objectKey = getObjectKey(generateUniqueFileKey());
final var url = amazonS3.generatePresignedUrl(s3Properties.getBucket(), objectKey,
calculateExpirationDate(s3Properties.getDownload().getUrlExpiration()), HttpMethod.PUT);
return new UploadInstruction(url, getFileKey(objectKey));
}
Я получаю URL-адрес через свой api и использую Postman для отправки запроса PUT. Но когда я использую этот URL для загрузки файла, я обнаружил, что AWS добавляет некоторые метаданные в начало моего файла, например «Content-type: Application octets stream ....». Это ошибка? Как избежать добавления дополнительной информации к загруженным файлам с URL-адресом загрузки?
ОБНОВЛЕНО: Например, я хочу загрузить простой текстовый файл со следующим текстом:
test
Когда я загружал на S3 через uploadUrl, после загрузки я получаю файл со следующим содержимым:
----------------------------174475527638909501568708
Content-Disposition: form-data; name=""; filename="test.txt"
Content-Type: text/plain
test
----------------------------174475527638909501568708--
Кроме того, я изменил имя файла при генерации uploadUrl. Кроме того, когда я загружал zip-архив, я не могу его распаковать после загрузки из ведра s3. Но все работает, когда я загружаю файлы через AWS CLI.
Адрес в запросе PUT - uploadUrl. Мои заголовки, которые добавил почтальон, следующие: