如何在 Java 预签名 AWS S3 SDK url 中设置策略条件
How to set Policy conditions in Java AWS S3 SDK presigned url
我使用 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
?
对于 browser-based POST 上传到 S3,AWS Java SDK 不提供生成带有条件的 pre-signed URL 的方法。有一个 open feature request 可以将其添加到 v2 SDK。请注意,PHP、Node.js 和 Python SDK 都提供此功能。
对于常规 HTTP PUT pre-signed URL,您不能对 pre-signed URL 应用内容长度限制。您 可以 放置 conditions using a custom policy 但这只支持:
- 日期小于
- DateGreaterThan
- IP地址
如果您需要处理超出给定大小范围的对象,那么您可以在 AWS Lambda 中执行此操作,在 对象上传后。
我使用 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
?
对于 browser-based POST 上传到 S3,AWS Java SDK 不提供生成带有条件的 pre-signed URL 的方法。有一个 open feature request 可以将其添加到 v2 SDK。请注意,PHP、Node.js 和 Python SDK 都提供此功能。
对于常规 HTTP PUT pre-signed URL,您不能对 pre-signed URL 应用内容长度限制。您 可以 放置 conditions using a custom policy 但这只支持:
- 日期小于
- DateGreaterThan
- IP地址
如果您需要处理超出给定大小范围的对象,那么您可以在 AWS Lambda 中执行此操作,在 对象上传后。