【发布时间】:2020-12-02 02:29:50
【问题描述】:
我正在尝试通过 Spring Boot 设置文件上传 REST API。
我目前有一个列表/GET 方法curl http://localhost:8080/api/aws/s3/list,它返回存储桶中当前存在的对象列表。
对于上传,我一直在尝试:
curl -F "data=@test.txt" http://localhost:8080/api/aws/s3/upload -i
产生:
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Sun, 25 Jun 2017 23:28:36 GMT
X-Application-Context: application
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
但是当我查看存储桶时,它并没有被新文件更新。
这会是 AWS 上的权限问题吗?只有我的帐户具有读写权限。我创建的用户和组具有管理员权限。我没有添加存储桶策略。这是我的 CORS 配置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
这是我的 S3 控制器在春季的上传部分:
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public List<PutObjectResult> upload(@RequestParam("file") MultipartFile[] multipartFiles) {
return s3Wrapper.upload(multipartFiles);
}
【问题讨论】:
标签: spring amazon-web-services curl amazon-s3