图片上传亚马逊s3 android SDK 2.0

Lau*_*yts 5 java android amazon amazon-s3 amazon-web-services

我想将图像上传到android中的amazon s3存储桶.我没有得到任何错误,但只是没有工作可以有人帮助我吗?我找不到任何关于此的好例子或问题.

我将图像分配给'文件images3'

images3 = new File(uri.getPath());

public void addEventToDB(){

        Thread thread = new Thread()
        {
            @Override
            public void run() {
                try {
                    CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
                            getActivity().getApplicationContext(), // get the context for the current activity
                            "...",
                            "us-east-1:...",
                            "arn:aws:iam::...:role/Cognito_WitpaAuth_DefaultRole",
                            "arn:aws:iam::...:role/Cognito_WitpaAuth_DefaultRole",
                            Regions.US_EAST_1
                    );

                    String bucket_name = "witpa";
                    String key = "images.jpeg";

                    TransferManager transferManager = new TransferManager(credentialsProvider);
                    transferManager.upload(bucket_name, key, images3);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };

        thread.start();

    }
Run Code Online (Sandbox Code Playgroud)

我创建了我的存储桶,在我设置的权限中,每个人都可以写和读.

在amazon cognito中,我只是将一切都保留为默认值.

谁知道我怎么能让这个工作?

ash*_*cse 3

试试这个。因为我遇到了和你一样的问题。

我已经使用下面的代码修复了。

ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentEncoding("UTF-8");
size = inputStream.available();
metadata.setContentLength(size);
TransferManager transferManager = new TransferManager(credentialsProvider);
Upload upload = transferManager.upload(bucket_name, key, images3, metadata);
upload.waitForCompletion();
Run Code Online (Sandbox Code Playgroud)