从Android将图像上传到AWS

时间:2019-05-23 10:58:17

标签: android amazon-web-services file-upload image-uploading

如何将图像/文件从Android上传到AWS S3。我已经有后端开发人员提供的URL 。他说我可以在此URL上使用“ PUT” 请求,然后图像将被上传。

我从Postman尝试过,在那儿工作正常。但我需要知道,如何从Android将图像上传到该URL,因为没有参数或URL所需的任何内容。

如何从android直接将图像/文件上传到此URL。

URL(我需要上传的网址):
https://jpp-internal-test.s3.amazonaws.com/temp/43a40cb4d2c82a5ea4ae286b16ae3872bac.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXZKKX3KKZCY7KOYZ%2F20190523%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190523T071047Z&X-Amz-Expires=600&X-Amz-Signature=2faec030f08b9061d0ccd22ea5828f6c88d08eb2c388bd4a188eb512ee92e1b1&X-Amz-SignedHeaders=host%3Bx-amz-acl&x-amz-acl=public-read

1 个答案:

答案 0 :(得分:0)

您还可以使用AWS Amplify框架。与存储有关的文档在这里:https://aws-amplify.github.io/docs/android/storage,它将指导您完成S3存储桶的置备和安装Amplify。我建议即使您自己拥有存储桶,也要仔细阅读该文档。如果要使用现有的S3存储桶,则将如何将其添加到amplifyconfiguration.json来配置Amplify Storage插件将变得更加清晰。

然后,Java代码将如下所示:

Amplify.Storage.uploadFile(
            "myUploadedFileName.txt",
            sampleFile.getAbsolutePath(),
            new ResultListener<StorageUploadFileResult>() {
                @Override
                public void onResult(StorageUploadFileResult result) {
                   Log.i("StorageQuickStart", "Successfully uploaded: " + result.getKey());
                }

                @Override
                public void onError(Throwable error) {
                    Log.e("StorageQuickstart", "Upload error.", error);
                }
            }
    );