【发布时间】:2023-03-03 16:56:01
【问题描述】:
我正在尝试使用RAmazonS3 package 中的listBuckets 函数,但得到了HTTP/1.1 403 Forbidden。
首先,我按照the manual 中所述设置身份验证选项:
options(AmazonS3 = c('login' = 'secret'))
我用我的访问密钥 ID(20 个字符)替换了login,用我的秘密访问密钥(40 个字符)替换了secret。当我运行listBuckets() 时,出现以下错误:
Error in UseMethod("xmlSApply") :
no applicable method for 'xmlSApply' applied to an object of class "NULL"
它没有返回任何数据,所以它一定没有正确连接。深入研究,listBuckets 中有一个getURL 调用。该行的输出是:
* About to connect() to proxy proxyname.domain.com port xx (#0)
* Trying xxx.xxx.xxx.xxx... * connected
* Connected to proxyname.domain.com (xxx.xxx.xxx.xxx) port xx (#0)
> GET http://s3.amazonaws.com HTTP/1.1
Host: s3.amazonaws.com
Accept: */*
Proxy-Connection: Keep-Alive
Date: Fri, 12 Sep 2014 09:02:41 EDT
Authorization: AWS [login]:[unknown 27-character code]=
< HTTP/1.1 403 Forbidden
< x-amz-request-id: [unknown 16-character code]
< x-amz-id-2: [unknown 64-character code]
< Content-Type: application/xml
< Transfer-Encoding: chunked
< Date: Fri, 12 Sep 2014 13:02:40 GMT
< Server: AmazonS3
< Cache-Control: proxy-revalidate
< Proxy-Connection: Keep-Alive
< Connection: Keep-Alive
<
* Connection #0 to host proxyname.domain.com left intact
有什么想法我哪里出错了吗?
我不确定要为 login 使用什么值,所以我也尝试了我的 AWS 账户名、我的 AWS 账户用户名和字面意思的“登录”,但得到了类似的错误。
在找到 RAmazonS3 包之前,我开始使用 AWS Command Line Interface 编写自己的 S3api 函数。从 R 调用 AWS CLI 时,我能够成功列出存储桶及其对象。
sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RCurl_1.95-4.3 bitops_1.0-6 RAmazonS3_0.1-5
loaded via a namespace (and not attached):
[1] digest_0.6.4 tools_3.1.1 XML_3.98-1.1
【问题讨论】:
-
它可能已经过时了;我不确定,因为我不是包的作者。您可以尝试的另一个包是AWSConnect 包,我已经将它放在一起,它应该允许您使用 S3 和 EC2 进行基本操作。让我知道是否解决了您的问题或遇到任何问题;因为这个包还处于测试阶段...
-
谢谢@Lalas。使用包中的
s3.ls()没有问题。 -
@Lalas,如果您提交您的评论作为答案,我会接受。
标签: r authentication amazon-web-services amazon-s3