首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用URL和2.x Java SDK获取S3对象?

如何使用URL和2.x Java SDK获取S3对象?
EN

Stack Overflow用户
提问于 2019-10-24 01:13:28
回答 3查看 4.2K关注 0票数 7

我使用的是2.x AWS Java SDK (https://docs.aws.amazon.com/sdk-for-java/index.html)。我需要使用友好的HTTP URL (例如https://bucket.s3.region.amazonaws.com/keyhttps://s3.region.amazonaws.com/bucket/key)获取一个S3对象。

旧的软件开发工具包包含一个AmazonS3URI类,它可以解析网址并提取存储桶和密钥。2.x SDK是否包含类似的功能,或者我是否应该使用Java的URI类来解析URL?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-25 02:50:58

目前还没有办法使用SDK完成此操作,但it might be available in the future。同时,您可以使用Java的URI类编写自己的代码,或者使用旧的SDK中的AmazonS3URI,希望它能继续工作。

票数 3
EN

Stack Overflow用户

发布于 2020-03-02 09:17:33

这就是我从java.net使用URI所做的事情

代码语言:javascript
复制
URI uri = new URI(s3Url);

String bucketName = uri.getHost();

// remove the first "/"
String prefix = uri.getPath().substring(1);
票数 6
EN

Stack Overflow用户

发布于 2020-05-23 03:41:34

根据@Bao Pham的回答进行扩展,使用new URI(s3Url)需要添加一个try/catch,而如果使用URI.create(s3Url),则不需要它。我还发现,使用解析后的部分中的S3ObjectId来提高可重用性非常有用。

代码语言:javascript
复制
public class S3Url {
    public static S3ObjectId decode(String urlStr) {
        URI uri = URI.create(urlStr);
        return new S3ObjectId(uri.getHost(), uri.getPath().substring(1));
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58527920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档