gpt4 book ai didi

java - AWS 使用 uploadUrl 时将元数据添加到文件内容

转载 作者:行者123 更新时间:2023-12-01 16:30:09 25 4
gpt4 key购买 nike

我正在使用下一个代码通过 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));
}

我通过 api 获取 URL 并使用 Postman 发送 PUT 请求。但是,当我使用此 URL 上传文件时,我发现 AWS 在我的文件开头添加了一些元数据,例如“内容类型:应用程序八位字节流......”。这是一个错误吗?如何避免使用上传网址向上传的文件添加额外信息?

更新:例如,我想上传包含以下文本的简单 txt 文件:

test

当我通过 uploadUrl 上传到 S3 时,下载后我会得到一个包含以下内容的文件:

----------------------------174475527638909501568708
Content-Disposition: form-data; name=""; filename="test.txt"
Content-Type: text/plain

test
----------------------------174475527638909501568708--

此外,我在生成 uploadUrl 时更改了文件名。另外,当我上传 zip 存档时,从 s3 存储桶下载后无法解压它。但当我通过 AWS CLI 上传文件时,一切正常。

PUT请求中的地址为uploadUrl。 postman 添加的我的标题如下:

enter image description here

最佳答案

我找到了一些信息here 。通常上传文件时使用form-data:

var fd = new FormData();
var file = document.getElementById('file')[0];
fd.append('file',file);

需要使用next:

var upload = document.getElementById('file');
var file = upload.files[0];

完整代码:

<form method="put" action="" enctype="multipart/form-data" id="myform">

<div >
<input type="file" id="file" name="file" />
<input type="button" class="button" value="Upload" id="but_upload">
</div>
</form>

Ajax :

$(document).ready(function(){

$("#but_upload").click(function(){

var upload = document.getElementById('file');
var file = upload.files[0];

$.ajax({
url: '<uploadURL>',
type: 'put',
data: file,
contentType: false,
processData: false,
success: function(response){
if(response != 0){
alert('file uploaded');
}else{
alert('file not uploaded');
}
},
});
});
});

在 Postman 中,需要使用二进制而不是表单数据来附加文件:

enter image description here

关于java - AWS 使用 uploadUrl 时将元数据添加到文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62062559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com