问题描述
我使用Java AWS S3 SDK对我的请求进行预签名。我有以下代码:
var request = new GeneratePresignedUrlRequest(bucketName,filename)
.withMethod(method)
.withExpiration(expiration());
// do something with request
return s3Client.generatePresignedUrl(request);
添加content-length-range
之类的自定义条件时,我需要写些什么来代替注释?
解决方法
对于基于浏览器的POST上传到S3,AWS Java SDK没有提供一种生成带有条件的预签名URL的方法。有一个开放的feature request将此添加到v2 SDK。请注意,PHP,Node.js和Python SDK都提供了此功能。
对于常规的HTTP PUT预签名URL,您不能将内容长度限制应用于预签名URL。您可以使用conditions 放置custom policy,但仅支持:
- DateLessThan
- DateGreaterThan
- IpAddress
如果您需要处理给定大小范围之外的对象,则可以在上载对象后,在AWS Lambda中进行。