从公共s3存储桶下载时出现代理错误

时间:2015-08-02 22:07:15

标签: r amazon-s3

我是s3 bucket的新手,我正在尝试解压缩保存在公共s3存储桶上的文件。在R中执行此操作时,我的代码是:

fn <- "http://s3://[redacted url address].tar.gz"
download.file(fn, destfile = "tmp.tar.gz")

我得到“500内部Privoxy错误”或“502 Fiddler - DNS查找失败”,具体取决于我尝试使用的计算机。

我正在尝试使用R在网上搜索从s3存储桶下载的正确方法,但是找不到太多,希望我能在这里得到一些帮助。

谢谢你!

1 个答案:

答案 0 :(得分:0)

我最初假设s3://[redacted url address].tar.gz的编辑部分包含S3存储桶的REST端点的完全限定主机名。

事实证明,格式可能只是s3://bucket-name/filename.tar.gz

在这种情况下,您仍然可以将其转换为可下载的URL(假设资源是公共的)...需要将存储桶名称转换为S3中的主机名。

s3://example-bucket/file.tar.gz

......变成......

http://example-bucket.s3.amazonaws.com/file.tar.gz

如果存储桶名称不包含任何点,则https也可以使用。 (如果存储桶名称中有点,它仍然可以工作&#34;但HTTP用户代理不会信任*.s3.amazonaws.com通配符证书。

所有配置为公共访问的对象的存储区都可以通过此URL格式从任何Web浏览器或其他http用户代理库访问。 S3存储桶存储在多个区域之一(在存储桶创建时由存储桶拥有者指定),每个区域都有特定于区域的端点也可以工作,但上面显示的构造对所有存储桶都有效。

http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region