InvalidCredsError with upload_object_via_stream() on Aurora Objects
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
libcloud/storage/drivers/s3.py の upload_object_via_stream()、_put_object_multipart()、_initiate_multipart() から始め、その経路を動作している upload_object() の経路と比較します。Aurora Objects の例を再現し、multipart 開始リクエストを追跡します。SignatureDoesNotMatch や InvalidCredsError が発生せずにストリーミングアップロードが成功すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Summary
When trying to upload a file to Aurora Objects through upload_object_via_stream(), I get an InvalidCredsError.
Detailed Information
When I try the following code:
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
cls = get_driver(Provider.AURORAOBJECTS)
driver = cls('api-key', 'secret-key')
container = driver.get_container('container')
container.upload_object_via_stream(iter([b'test']), 'test.txt')
It results in the following error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/wout/project/.venv/lib/python3.9/site-packages/libcloud/storage/base.py", line 216, in upload_object_via_stream
return self.driver.upload_object_via_stream(
File "/home/wout/project/.venv/lib/python3.9/site-packages/libcloud/storage/drivers/s3.py", line 747, in upload_object_via_stream
return self._put_object_multipart(container=container,
File "/home/wout/project/.venv/lib/python3.9/site-packages/libcloud/storage/drivers/s3.py", line 988, in _put_object_multipart
upload_id = self._initiate_multipart(container, object_name,
File "/home/wout/project/.venv/lib/python3.9/site-packages/libcloud/storage/drivers/s3.py", line 572, in _initiate_multipart
response = self.connection.request(request_path, method='POST',
File "/home/wout/project/.venv/lib/python3.9/site-packages/libcloud/common/base.py", line 667, in request
response = responseCls(**kwargs)
File "/home/wout/project/.venv/lib/python3.9/site-packages/libcloud/common/base.py", line 167, in __init__
message=self.parse_error(),
File "/home/wout/project/.venv/lib/python3.9/site-packages/libcloud/storage/drivers/s3.py", line 138, in parse_error
raise InvalidCredsError(self.body)
libcloud.common.types.InvalidCredsError: '<?xml version="1.0" encoding="UTF-8"?><Error><Code>SignatureDoesNotMatch</Code><RequestId>tx00000000000004e0ebfe5-00620a68e9-1d4a885a-ams02</RequestId><HostId>1d4a885a-ams02-eu</HostId></Error>'
However upload_object() is working fine as follows:
from libcloud.storage.types import Provider
from libcloud.storage.providers import get_driver
cls = get_driver(Provider.AURORAOBJECTS)
driver = cls('api-key', 'secret-key')
container = driver.get_container('container')
container.upload_object('test.txt', 'test.txt')
I am using Python 3.9.8-1 on Debian unstable with Libcloud 3.4.1.
- 主要言語
- Python
- スター
- 2.1k
- フォーク
- 935
- 平均マージ
- 5日 3時間
- マージ済み PR(30日)
- 15
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/libcloud のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
Local range download leaves an output file after source-read failure despite delete_on_failure=Trueオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
apache/libcloud#2215 · コメント 3 件 · リアクション 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
apache/libcloud の issue をすべて見る
似ている issue
-
Email validation accepts a trailing newline対応中かも @marcello-pichini が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
dbt-labs/spark-utils#51 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
bug frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
vendrabuck/HERD#1419 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信