概要
UTF-8-MACなファイル(いわゆるOSXで濁点とかがついているファイル)をS3にアップロードして、Cognito経由でダウンロードしようとするとAccess Deniedとなる問題
Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied
結論
- aws-android-sdk-s3のバージョンを
2.3.+
にする(2.4.+以上だと起きる) - 最新版2.6.6でも起きる(2017/10/30現在)
build.gradle
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
// AWS
// 2.3.+系では動く
compile 'com.amazonaws:aws-android-sdk-core:2.3.+'
compile 'com.amazonaws:aws-android-sdk-s3:2.3.+'
// 2.4.+系以上では動かない
//compile 'com.amazonaws:aws-android-sdk-core:2.4.+'
//compile 'com.amazonaws:aws-android-sdk-s3:2.4.+'
}
補足
一応issue立てたのでそのうち治るかもしれないですが、現状はバージョンを下げて対応しています。
ちなみにiOS版では起きないです。AndroidのSDKのバグです。
(そもそもそんな名前のファイルあげるなよって意見もあるかもですが)