HBS3で「Amazon S3」ストレージタイプを使ってAlibaba Cloudストレージを設定しようとしています。HBS3がデフォルトでパススタイルを使用していて、virtual-hostedスタイルに変更するオプションが見つかりません。
エンドポイントが「s3.example.com」でバケット名が「my-bucket」の場合、「my-bucket.s3.example.com」にアクセスされることを期待したのですが、HBS3は「s3.example.com/my-bucket」にアクセスしようとし、これはAlibaba Cloudではサポートされていません。
ネイティブのS3 SDKを使用する場合なら、「use path style = false」などを設定しますが、HBS3でこれをどう設定すればいいかわかりません。
また、HBS3のAlibaba Cloudストレージタイプを使う場合、ストレージスペース作成時にアカウントレベルの権限が必要だと分かりました(バケットをリストしようとしているようです)。バケットレベルだけのアクセス権のあるアカウントは使えません。そのため、この方法は使いたくありません。
こんにちは。
ご報告ありがとうございます——ご指摘の分析はまさに的確で、こちら側の状況も以下の通り確認しています:
-
HBS 3 の Alibaba Cloud ストレージタイプはすでにバーチャルホスト型(virtual-hosted style)のアクセスを利用しているため、アドレッシングには問題ありません。ただしご指摘の通り、現在ストレージスペースの作成時に ListBuckets が呼ばれており、これはアカウントレベルの権限が必要です。
-
Amazon S3 / S3 互換ストレージタイプは「特定バケットの使用(Use specific bucket)」をサポートしているため、バケットレベルの認証情報でも機能しますが、現状では必ずパススタイル(path-style)のリクエストのみを送信しており、Alibaba Cloud OSS では拒否されてしまいます。
つまり、それぞれ異なる制限で行き詰まっている状況です。この点について議論し、両方とも改善する計画です:
ご協力いただきありがとうございます!どちらの改善も非常に役立ちます。
Alibaba Cloud の「特定バケットのみを使用」機能は、私の問題をより直接的に解決してくれると思います。ただ、virtual-hosted-style(バーチャルホステッドスタイル)対応は、一般的な S3 互換プロバイダーをより柔軟に利用できる汎用的な機能ですね。