S3エンドポイントとパス形式のエラーを解決する
/s3エンドポイントのリクエストパスにワークスペースIDを維持し、仮想ホスト形式のデフォルト設定を修正して、許可されたS3認証情報で安全に再テストします。
最終確認日
スクリーンショットは英語版の画面です。
dosyaはhttps://api.dosya.dev/s3にマウントされるため、クライアントはワークスペースのバケットをURLパスに含める必要があります。仮想ホスト形式ではホストが変わり、ゲートウェイのルートが期待するバケットのパス部分が省かれます。

始める前に
S3シークレットをスクリーンショットやログに含めないでください。ネットワーク設定を変更する前に、元のAPIキーでS3が許可され、有効期限が切れていないことを確認してください。
rcloneのS3バックエンドでは、リリース済みの動作する設定にprovider = Other、endpoint = https://api.dosya.dev/s3、force_path_style = true、region = us-east-1を使用します。テスト済みの大容量アップロードのしきい値は64Miです。
手順
- 失敗したリクエストURLを調べ、ホスト
api.dosya.dev上の/s3/{workspace-id}/{object-key}になるべきことを確認してください。 - AWSのデフォルトエンドポイントやパスのない
https://api.dosya.devをhttps://api.dosya.dev/s3に置き換えてください。 - クライアントのパス形式オプションを有効にしてください。名前はツールにより
forcePathStyle、s3ForcePathStyle、force_path_styleのいずれかです。 - リージョンを
us-east-1、バケットをdosyaのワークスペースIDそのものに設定してください。 HEADバケットまたは浅い階層の一覧を再試行してください。rcloneだけでSignatureDoesNotMatchが返る場合は、上流で書き換えられるヘッダーが署名対象にならないようsign_accept_encoding = falseを設定してください。- 成功したリクエストが目的のバケットに届くことを確認し、範囲を限定したオブジェクト操作を1つ実行して正確なキーを確認してください。

期待される結果
クライアントがゲートウェイの実際のパスを送信して署名し、dosyaがワークスペースをバケットとして解釈します。リクエストは無関係なAPIルートや仮想ホストではなくS3のルートに届きます。
認証がまだできない場合は、InvalidAccessKeyIdとSignatureDoesNotMatchを区別してください。前者は有効なアクセスIDが必要です。後者はシークレット、ベースパス、署名済みヘッダー、時計、クライアントの正規化を確認する必要があります。
関連ガイド
この記事は役に立ちましたか?
評価の結果を読み込んでいます…
投票すると、回答を変更できるように、必要な投票用Cookieが最長180日間保存されます。
質問と回答
このガイドの手順について質問できます。質問は確認後に公開されます。
公開の質問には、アカウントの詳細、認証情報、非公開ファイルを含めないでください。これらについては 非公開サポート をご利用ください。
質問を読み込んでいます…
dosyaアカウントにサインインすると、質問を投稿できます。