こんにちは、皆さん。
現在開発中のアプリケーションが、Amazon S3クライアント(v3)を使って別のS3互換サービスにオブジェクトを正常に保存できています。
これをQNAPデバイスで動作させるよう移植しています。
QuObjectsをドキュメント通りに設定し、システムパネルからリバースプロキシを構成して、必要なCORS許可ヘッダー値を注入するようにしました。
しかし、s3エンドポイントにアクセスしようとすると、CORSのプリフライトリクエストが401(認証されていません)ステータスで失敗します。
レスポンスヘッダーにはWww-authenticate設定があります:
Www-Authenticate: Swift realm=“unknown”
これは今まで見たことがありません。
この挙動を制御する設定はどこかにあるのでしょうか?
何か見落としている点はありますか?
これを実現するためのヒントや手がかりはありますか?
リクエスト内容は以下の通りです:
OPTIONS /my-bucket/admin/Screenshot%20from%202025-03-03%2010-59-50.png?uploads= HTTP/1.1
Host: 10.255.5.55:8443
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:135.0) Gecko/20100101 Firefox/135.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: amz-sdk-invocation-id,amz-sdk-request,authorization,content-type,x-amz-content-sha256,x-amz-date,x-amz-user-agent
Referer: http://localhost:5173/
Origin: http://localhost:5173
Connection: keep-alive
Priority: u=4
レスポンス内容は以下の通りです:
HTTP/1.1 401 Unauthorized
Date: Tue, 04 Mar 2025 05:50:37 GMT
Server: Apache/2.4.62 (Unix) OpenSSL/3.0.9
Content-Type: text/html; charset=UTF-8
Www-Authenticate: Swift realm="unknown"
Content-Length: 131
X-Trans-Id: tx4d588e7fefe2413ea4c96-0067c694ad
Access-Control-Allow-Origin: http://localhost:5173
Access-Control-Allow-Methods: GET,PUT,POST,DELETE,HEAD,OPTIONS
Access-Control-Allow-Headers: amz-sdk-invocation-id,amz-sdk-request,authorization,content-type,x-amz-content-sha256,x-amz-date,x-amz-user-agent
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: amz-sdk-invocation-id,amz-sdk-request,authorization,content-type,x-amz-content-sha256,x-amz-date,x-amz-user-agent
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
よろしくお願いします。-sab-