Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序无法下载S3禁止(服务:Amazon S3;状态代码:403;错误代码:null)_Android_Amazon S3 - Fatal编程技术网

Android应用程序无法下载S3禁止(服务:Amazon S3;状态代码:403;错误代码:null)

Android应用程序无法下载S3禁止(服务:Amazon S3;状态代码:403;错误代码:null),android,amazon-s3,Android,Amazon S3,我正在尝试读取s3存储桶的元数据(版本),然后决定是否需要下载sqlite.db文件 代码 private void downloadLatestSEZDBFile() { Object result; String finalDatabasePath = getFinalDatabasePath(); s3client = new AmazonS3Client( new ClasspathPropertiesFil

我正在尝试读取s3存储桶的元数据(版本),然后决定是否需要下载sqlite.db文件

代码

private void downloadLatestSEZDBFile() {
        Object result;
        String finalDatabasePath = getFinalDatabasePath();
        s3client = new AmazonS3Client(
                new ClasspathPropertiesFileCredentialsProvider());
        try {
-->Exception here--> newVersion = Integer.valueOf((String) s3client.getObjectMetadata(
                    bucketName, sezDB).getRawMetadataValue(versionMetadata));
        } catch (NumberFormatException e) {

        }
        Log.d("myapp", "SEZDB version returned " + newVersion);
        File finalDatabase = new File(finalDatabasePath);
        if (newVersion == 1 || !finalDatabase.exists()) {
            copyVersion1FromAssets(finalDatabase);
            result = finalDatabase.getAbsolutePath();
        } else if (newVersion != God.getSEZDBVersion(context)) {
            GetObjectRequest objectRequest = new GetObjectRequest(bucketName,
                    sezDB);
            s3client.getObject(objectRequest, finalDatabase);
            result = finalDatabase.getAbsolutePath();
        } else
            result = null;

        if (result != null) {
            God.setSEZDBVersion(context, newVersion);
            sqliteDatabase = SQLiteDatabase.openOrCreateDatabase(
                    finalDatabasePath, null);
            God.initializeCityVariables(context);
        }
    }
我已将
AwsCredentials.properties
复制到我的
src
文件夹中

secretKey=<mysecretkey>
accessKey=<myaccesskey>
我错过了什么

编辑

  • 我试着从这个代码,并没有改变相同的异常如上所述

  • 我还尝试将AwsCredentials.properties的位置移动到libs文件夹。在这里,我得到了一个不同的异常,它暗示AwsCredentials.properties文件的位置应该在项目的src文件夹中,而不是libs文件夹中

  • 03-09 19:19:57.109:E/AndroidRuntime(14502):com.amazonaws.AmazonClientException:无法从类路径上的/AwsCredentials.properties文件加载AWS凭据

  • 我使用IAM用户登录AWS,可以查看对象的元数据

  • @Praneet Sharma这个问题仍然没有解决。。
    com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: null; Request ID: DE30A17F3E9E3B1C), S3 Extended Request ID: fdl02MUW0qzC6WPzO52nUBCw4+LYxAPlUuPOWN2lJd+LRJLC/nUoM2AJip5yWxeG2fGhy7HIbLQ=
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(Unknown Source)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.amazonaws.http.AmazonHttpClient.executeHelper(Unknown Source)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.amazonaws.http.AmazonHttpClient.execute(Unknown Source)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.amazonaws.services.s3.AmazonS3Client.invoke(Unknown Source)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(Unknown Source)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(Unknown Source)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.myapp.support.ActiveSEZDB.downloadLatestSEZDBFile(ActiveSEZDB.java:262)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.myapp.support.ActiveSEZDB.access$0(ActiveSEZDB.java:256)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at com.myapp.support.ActiveSEZDB$1.run(ActiveSEZDB.java:43)
    03-09 09:26:34.195: E/AndroidRuntime(31116):    at java.lang.Thread.run(Thread.java:1019)
    03-09 09:26:34.203: E/(1490): Dumpstate > /data/log/dumpstate_app_error
    03-09 09:26:39.625: E/Launcher(1588): setWindowOpaque()