当前位置: 首页 > 面试题库 >

上载文件时获取boto.exception.S3ResponseError:S3ResponseError:403禁止

段干靖
2023-03-14
问题内容

关于此问题还有其他一些问题:

boto.exception.S3ResponseError:S3ResponseError:403禁止

S3ResponseError:S3ResponseError:403禁止

S3ResponseError:403禁止使用Boto

Python:Amazon S3无法达到目标:说“ 403
Forbidden”

但是,似乎我可能遇到了其他问题(例如,时钟偏移不是问题,并且我已经尝试过设置validate=False,并且我相信我拥有正确的密钥和秘密密钥,因为尝试伪造的密钥或秘密密钥会给我带来不同的错误)
。这是我的脚本

import boto
import sys
from boto.s3.key import Key

BUCKET_NAME = sys.argv[1]
AWS_ACCESS_KEY_ID = sys.argv[2]
AWS_SECRET_ACCESS_KEY = sys.argv[3]

conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket(BUCKET_NAME, validate=False)
k = Key(bucket)
k.key = 'barbaz'
k.set_contents_from_filename('/tmp/barbaz.txt')

结果:

Traceback (most recent call last):
  File "/home/jonderry/sdmain/src/scripts/jenkins/upload_to_s3.py", line 16, in <module>
    k.set_contents_from_filename('/tmp/barbaz.txt')
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1360, in set_contents_from_filename
    encrypt_key=encrypt_key)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 1291, in set_contents_from_file
    chunked_transfer=chunked_transfer, size=size)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 748, in send_file
    chunked_transfer=chunked_transfer, size=size)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 949, in _send_file_internal
    query_args=query_args
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py", line 664, in make_request
    retry_handler=retry_handler
  File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 1068, in make_request
    retry_handler=retry_handler)
  File "/usr/local/lib/python2.7/dist-packages/boto/connection.py", line 939, in _mexe
    request.body, request.headers)
  File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 882, in sender
    response.status, response.reason, body)
boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>***someRequestId***</RequestId><HostId>***someHostId</HostId></Error>

任何想法是什么问题,或如何进一步诊断?


问题答案:

您似乎无权在此存储桶上进行写操作。什么是水桶政策?您可以确定这个IAM用户可以放这个桶吗?



 类似资料:
  • 问题内容: 我正在从我的api加载json数据,其中包含指向我网域之外的图片的网址。我过去是这样做的,而不是使用Angular,而且我从未见过此问题… 在我的小提琴中,当我单击“搜索”时,出现了两个图像,但是它们都抛出了403禁止且未加载。 我不知道为什么会这样。有任何想法吗? 问题答案: 似乎imdb正在检查引荐来源网址,因此不允许其他方将其图像直接嵌入其网站中。如果您尝试使用其他域的图像,则可

  • 问题内容: 我在CentOS 5盒子上安装了Nginx和PHP-FPM,但是我很难使它服务于我的任何文件-无论是否为PHP。 Nginx以www-data:www-data的身份运行,默认的“欢迎使用EPEL上的nginx”站点(由root:root拥有644权限)可以很好地加载。 nginx配置文件具有 /etc/nginx/sites-enabled/*.conf 的include指令 , 而

  • 以下代码禁止使用403,尽管“https://jsonplaceholder.typicode.com/posts/1”在postman中有效 错误: 如果有人能建议,我需要在代码中添加什么

  • 这个问题非常类似于如何禁用ExpressBodyParser进行文件上传(Node.js)。他们提供的答案是针对Express3的,我用更新后的Express4尝试了这个解决方案,但它似乎不起作用。 我正在使用Node.jsExpress构建一个Web应用程序。我正在使用另一个库,BodyParser,来解析后参数。然而,我希望对多部分表单数据POSTS有更细粒度的访问——我需要将输入流管道到另一

  • 问题内容: 我有一个表单(HTML,PHP),允许最终用户上传文件,以使用上传文件(特别是.csv)中的记录来更新数据库(MySQL)。但是,在phpscript中,我只能获取文件名,而不能获取特定文件的完整路径。由于这个原因,fopen()失败。谁能让我知道如何找到完整的路径? HTML代码: PHP脚本: 问题答案: 引用 客户端 上的文件名。要在 服务器端 获取文件名(包括完整路径),您需要