【问题标题】:proxy error when downloading from public s3 bucket从公共 s3 存储桶下载时出现代理错误
【发布时间】:2015-08-07 02:23:03
【问题描述】:

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

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

我收到“500 Internal Privoxy Error”或“502 Fiddler - DNS Lookup Failed”,这取决于我在哪台计算机上尝试。

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

谢谢!

【问题讨论】:

  • http://s3:// 不可能是对的。
  • @Michael - sqlbot - 我拥有的网址实际上不是以 http 开头,但如果我不添加 http 则不起作用
  • 实际上我现在才意识到 Python 中有一个 s3 连接器,如果 R 中没有类似的包,我可能会使用它?
  • 在添加http://之前,只需去掉s3://
  • 谢谢迈克尔,我刚试过,但没用。

标签: r amazon-s3


【解决方案1】:

我最初假设 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 也可以。 (如果存储桶名称中有点,它仍然“有效”,但*.s3.amazonaws.com 通配符证书不会被 HTTP 用户代理信任。

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

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

【讨论】:

    猜你喜欢
    • 2019-02-21
    • 2022-01-19
    • 2016-08-26
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多