【问题标题】:Android App S3 upload not working. No errorAndroid App S3 上传不起作用。没有错误
【发布时间】:2018-03-30 22:14:15
【问题描述】:

我正在构建一个 android 应用程序,该应用程序可以拍照并将其上传到 Amazon S3。我的代码似乎运行良好,因为它实际上正在运行(通过调试断点确认),但是它没有上传。我没有收到任何错误消息,并且我放入应用程序的 log.d 消息不会出现在 logcat 中。

我正在使用这个亚马逊教程:http://docs.aws.amazon.com/mobile-hub/latest/developerguide/add-aws-mobile-user-data-storage.html#add-aws-mobile-user-data-storage-app

第一次运行代码时,我收到一个错误,抱怨 TransferUtility.builder() 没有 .s3Client 所以我把它放进去。

违规代码:

private void uploadImage(){
        AWSConfiguration awsConfig =
                new AWSConfiguration(getActivity().getApplicationContext());
        AmazonS3Client s3Client = new AmazonS3Client(IdentityManager.getDefaultIdentityManager()
                .getCredentialsProvider().getCredentials());

        TransferUtility transferUtility =
                TransferUtility.builder()
                        .context(getActivity().getApplicationContext())
                        .awsConfiguration(awsConfig)
                        .s3Client(s3Client)
                        .build();

        TransferObserver uploadObserver =
                transferUtility.upload(
                        "sniffer-gps-app/UserDogPhotos/"+userId+photoFile.getName(),
                        photoFile);

        uploadObserver.setTransferListener(new TransferListener() {

            @Override
            public void onStateChanged(int id, TransferState state) {
                if (TransferState.COMPLETED == state) {
                    //todo something here
                    Log.d("S3", "done");
                    nextFragment();
                }

            }

            @Override
            public void onProgressChanged(
                    int id, long bytesCurrent, long bytesTotal) {
                Log.d("S3", "ID: "+id+"\r\nBytesCurrent: "+bytesCurrent+"\r\nBytesTotal: "+bytesTotal);
                // TODO Auto-generated method stub

            }

            @Override
            public void onError(int id, Exception ex) {
                Log.d("S3", ex.toString());
                Integer ID = id;
                Log.d("S3", ID.toString());
            }

        });
    }

photoFile 是一个File 对象。

sniffer-gps-app 是存储桶名称

UserDogPhotos是bucket中的一个文件夹

【问题讨论】:

标签: android amazon-s3 amazon-cognito aws-mobilehub


【解决方案1】:

清单中的服务标签在我的应用标签之外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 2016-01-10
    • 1970-01-01
    • 2019-09-16
    • 2018-01-28
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多