- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法弄清楚为什么加载了编码 utf-8
的文件(其内容为“稍后删除我”)在散列时会在 botocore 中导致异常。
with io.open('deleteme','r', encoding='utf-8') as f:
try:
resp=client.put_object(
Body=f,
Bucket='s3-bucket-actual-name-for-real',
Key='testing/a/put'
)
print('deleteme exists')
print(resp)
except:
print('deleteme could not put')
raise
产生:
deleteme could not put
Traceback (most recent call last): File
"./test_operator.py", line 41, in
Key='testing/a/put' File "/Users/lamblin/VEnvs/awscli/lib/python3.6/site-packages/botocore/client.py",
line 312, in _api_call
return self._make_api_call(operation_name, kwargs) File "/Users/lamblin/VEnvs/awscli/lib/python3.6/site-packages/botocore/client.py",
line 582, in _make_api_call request_signer=self._request_signer, context=request_context) File
"/Users/lamblin/VEnvs/awscli/lib/python3.6/site-packages/botocore/hooks.py",
line 242, in emit_until_response
responses = self._emit(event_name, kwargs, stop_on_response=True) File
"/Users/lamblin/VEnvs/awscli/lib/python3.6/site-packages/botocore/hooks.py",
line 210, in _emit
response = handler(**kwargs) File "/Users/lamblin/VEnvs/awscli/lib/python3.6/site-packages/botocore/handlers.py",
line 201, in conditionally_calculate_md5
calculate_md5(params, **kwargs) File "/Users/lamblin/VEnvs/awscli/lib/python3.6/site-packages/botocore/handlers.py",
line 179, in calculate_md5
binary_md5 = _calculate_md5_from_file(body) File "/Users/lamblin/VEnvs/awscli/lib/python3.6/site-packages/botocore/handlers.py",
line 193, in _calculate_md5_from_file md5.update(chunk)
TypeError: Unicode-objects must be encoded before hashing
现在可以通过使用 'rb' 打开文件来避免这种情况,但是文件对象 f
显然使用了编码吗?
最佳答案
Now this can be avoided by opening the file with 'rb' but, isn't the file object f clearly using an encoding?
mode='r'
中指定给 io.open
的编码用于解码 内容。所以当你迭代f
时,内容已经被Python从bytes
转换为str
(文本)。
要直接与 botocore
交互,请使用 'rb'
模式打开文件,并删除编码 kwarg
。当 botocore
为了传输内容而必须做的第一件事只是再次编码回字节时,没有必要将它解码为文本。
关于python - botocore s3 put 由于编码而出现哈希文件问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47519548/
是否可以阅读以前版本的文档?尝试过,寻找答案,但到目前为止没有成功。 http://botocore.readthedocs.io/en/latest/ https://github.com/boto
我正在尝试将最近的 Amazon 转录服务用于: transcribe = boto3.client('transcribe') 我收到以下错误: botocore.exceptions.Unknow
我正在尝试将最近的 Amazon 转录服务用于: transcribe = boto3.client('transcribe') 我收到以下错误: botocore.exceptions.Unknow
我一直在尝试将单元测试添加到我的 AWS 脚本中。我一直在使用 botocore.stub 来 stub API 调用。 我需要为各种调用添加分页,但我似乎找不到一种方法来编写包含分页的测试。 这是一
在python3中使用boto3和warrant。 headless 系统。尝试使用授权的 ASWSRP 使用 python 脚本登录。使用用户池存在更改临时密码的问题。所以......我有代码首先尝
我有用 Python 编写的 aws 识别代码,它由 Node API 运行,在 Windows 系统上运行良好,但当我在 Linux 上部署它时,我遇到了这个问题:- botocore.errorf
在 Amazon SNS 中使用 boto3 时出现以下错误。我只想捕获 InvalidParameterException,我该怎么做? Traceback (most recent call la
我正在使用 AWS Cognito制作 OAuth服务器。我现在正在创建异常处理程序,以防使用不存在,但 requests打算得到一个 ipdb> pk 'David' ipdb> res = sel
我无法弄清楚为什么加载了编码 utf-8 的文件(其内容为“稍后删除我”)在散列时会在 botocore 中导致异常。 with io.open('deleteme','r', encoding='u
Boto3 is using their own botocore (这是有道理的)。 但是,exiting botocore不支持新的Transcribe API我真的很想使用它。 我想使用this
运行以下代码时: import boto3 BUCKET = 'bwd-plfb' s3 = boto3.client('s3',use_ssl = False) resp = s3.list_obj
在使用 Python 中的 botocore 库围绕 AWS-EC2 做一些自动化时,我注意到许多 HTTPS 连接仍然建立,忙于做其他事情的进程不再需要这些连接(所以杀死他们或重新编码他们退出不是一
当我简单地运行以下代码时,我总是收到此错误。 s3 = boto3.resource('s3') bucket_name = "python-sdk-sample-%s" % uuid.uuid4()
我正在使用 unittest 来测试使用 boto3 调用 AWS 的函数。 该函数如下所示: import boto3 def my_function(): client = boto3.c
我正在尝试用旧事件存储中的数据填充 DynamoDB 数据库由 PostgreSQL 数据库组成。在运行完大部分数据库条目后,在尝试调用 put_item 函数时抛出此错误。 botocore.exc
我已经安装了 boto3 但它仍然报错没有名为 botocore.session 的模块 import botocore.session ImportError: No module named bo
当尝试使用此 python 代码连接到数据库以测试连接时。 import boto3 s3 = boto3.resource('s3') for b in s3.buckets.all(): p
在空间有限的小型嵌入式 Linux 设备上,我试图将大型 [10 Mb] Amazon (AWS) BotoCore 库 ( https://github.com/boto/botocore ) 放在
在我的 awscli 安装升级后,我遇到了这个错误。我无法弄清楚该错误的原因。谁能帮忙? AWS CLI 错误: Traceback (most recent call last): File "
我正在尝试编写“好”的 python 并通过以下方式捕获 S3 no such key 错误: session = botocore.session.get_session() client = se
我是一名优秀的程序员,十分优秀!