相关疑难解决方法(0)

使用以下格式生成预签名URL:s3.amazonaws.com/bucket.name

我正在生成预先签名的网址,但由于*.s3.amazonaws证书,因此对于具有句点和SSL的存储桶名称存在问题,如下所述:http://shlomoswidler.com/2009/08/amazon-s3-gotcha-using- 虚拟host.html

有没有办法生成具有以下格式的网址?:http: //s3.amazonaws.com/bucket.name/key

我没有在API中看到一个选项.我猜我可以通过重新排列网址来"手动"完成它,但如果没有必要,我宁愿避免黑客入侵.

基于迈克尔的答案,这里是我现在使用的代码:

public static URL bucketNameAfterS3Url(URL url) {

    int index = url.getHost().indexOf("s3");
    String host = url.getHost().substring(index);
    String bucket = url.getHost().substring(0, index - 1);
    URL toUse;
    try {
        toUse = new URL(url.getProtocol(), host, url.getPort(), '/' + bucket + url.getFile());
    } catch (MalformedURLException e) {
    }
    return toUse;
}
Run Code Online (Sandbox Code Playgroud)

amazon-s3

4
推荐指数
2
解决办法
3053
查看次数

标签 统计

amazon-s3 ×1