問題の説明
デフォルトのパブリックドメイン名を使用して、2023年8月15日00:00 (UTC+8) 以降に作成されたOSSバケット内の.apkまたは.ipaファイルにアクセスした場合、400エラーが返されます。
発生原因
安全上の理由から、2023年8月15日00:00 (UTC+8) 以降に作成されたバケットに対して、デフォルトのパブリックドメイン名(例:bucketname.oss-cn-region.aliyuncs.com)または転送加速ドメイン名(例:bucketname.oss-accelerate.aliyuncs.comまたはbucketname.oss-accelerate-overseas.aliyuncs.com)を使用して.apkまたは.ipaの拡張子を持つファイルにアクセスする場合、URL署名付きリクエストまたは匿名アクセスリクエストはブロックされます。サーバーは400エラーを返し、エラーコードはApkDownloadForbiddenです。
例
次の例では、パブリックドメイン名を使用して、名前に.apk拡張子を含むオブジェクトに匿名でアクセスします。 HTTPステータスコード400が返されます。
GET /test.apk HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
HTTP/1.1 400 Bad Request
Server: AliyunOSS
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>ApkDownloadForbidden</Code>
<Message>The APK file is not allowed to be distributed in a public network using the OSS endpoint, please use CNAME instead.</Message>
<RequestId>xxxxxxxxxxxxx</RequestId>
<HostId>oss-example.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
ソリューション
カスタムドメイン名を使用してこれらのオブジェクトにアクセスします。 カスタムドメイン名を使用してこれらのオブジェクトにアクセスすると、リクエストが許可されます。 カスタムドメイン名を使用してOSSオブジェクトにアクセスする方法の詳細については、「カスタムドメイン名のマッピング」をご参照ください。