使用R语言aws.s3库访问Wasabi S3存储桶遇权限错误求助
解决R脚本使用aws.s3连接Wasabi存储桶的问题
你的错误根源很明确:脚本里的endpoint_url被注释掉了,导致请求默认发往AWS的S3端点,而你的Wasabi密钥在AWS系统里不被识别,因此出现InvalidAccessKeyId错误。以下是修复方案:
核心修复步骤
- 取消
endpoint_url行的注释,确保指向对应区域的Wasabi官方端点 - 调用
get_bucket时明确指定签名版本(适配Wasabi的V4签名要求) - 检查凭证变量是否正确加载,无拼写错误
修改后的完整测试脚本
# 加载所需包 library(aws.s3) source("../../wasabi_credentials.R") # 设置凭证环境变量 Sys.setenv("AWS_ACCESS_KEY_ID" = your_access_key_id, "AWS_SECRET_ACCESS_KEY" = your_secret_access_key) # 指定存储桶、区域和Wasabi端点 bucket <- "salurbal-cec" region <- "us-west-1" # 必须与存储桶所在区域一致,不要加wasabi前缀 endpoint_url <- "https://s3.us-west-1.wasabisys.com" # 取消注释,匹配你的存储桶区域 # 列出存储桶内对象(明确指定关键参数) objects <- get_bucket( bucket = bucket, region = region, endpoint_url = endpoint_url, signature_version = "v4", use_https = TRUE ) # 打印结果 print(objects)
额外注意事项
- 确认存储桶区域与
region、endpoint_url完全匹配:比如us-east-1对应https://s3.us-east-1.wasabisys.com,其他区域需对应调整 - 若仍有问题,可添加
verbose = TRUE参数到get_bucket调用中,查看请求的详细日志,确认端点是否正确发送 - 检查
wasabi_credentials.R文件中的变量名是否和脚本里的your_access_key_id、your_secret_access_key完全一致,避免变量名拼写错误
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

