我正在使用2.x AWS Java SDK(https://docs.aws.amazon.com/sdk-for-java/index.html)。我需要使用友好的HTTP URL(例如https://bucket.s3.region.amazonaws.com/key
或https://s3.region.amazonaws.com/bucket/key
)获取S3对象。
旧版SDK包含一个AmazonS3URI
类,可以解析URL并提取bucket和key。2.x SDK是否包含类似的功能,或者我应该使用Java的URI类来解析URL?
5条答案
按热度按时间bt1cpqcv1#
下面是我使用
URI
fromjava.net
所做的:luaexgnf2#
目前还没有一种方法可以用SDK来实现,但是it might be available in the future。同时,您可以使用Java的
URI
类编写自己的代码,或者使用旧SDK中的AmazonS3URI
,希望它能继续工作。yc0p9oo03#
如果你想要
AmazonS3URI
的所有功能,但不想导入整个库,你也可以复制源代码。https://github.com/aws/aws-sdk-java/blob/master/aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/AmazonS3URI.java
nsc4cvqm4#
此pull request将此功能添加到SDK版本2。
6fe3ivhb5#
扩展@Bao Pham的答案,使用
new URI(s3Url)
需要添加try/catch,而如果您使用URI.create(s3 Url),则不需要它。我还发现在解析的部分中使用S3ObjectId
以实现可重用性很有用。