如何使用适用于 Android 的 AWS 开发工具包将图像上传到 Digital Ocean Spaces?

2024-06-23

由于 Digital Ocean Spaces API 与 AWS SDK 兼容,如何使用适用于 Android 的 AWS SDK 以编程方式将图像上传到 Digital Ocean Spaces?


将 sdk 添加到 android studio 项目中的 build.gradle 中:

compile 'com.amazonaws:aws-android-sdk-core:2.6.9'
compile 'com.amazonaws:aws-android-sdk-s3:2.6.9'
compile 'com.amazonaws:aws-android-sdk-ddb:2.6.9'

在清单文件中添加以下服务:

<service android:name="com.amazonaws.mobileconnectors.s3.transferutility.TransferService"
    android:enabled="true" />

基本步骤:

1.首先使用 BasicAWSCredentails 类创建用于访问 S3 的 AWS 凭证

2.将AWS凭证传递给AmazonS3实例

3.然后将 AmazonS3 对象传递给 TransferUtility 类

4.将BucketName、FileName和FileObject(要传输的)分配给TransferObserver类

5.最后,使用 TransferObserver 类的 setTransferListener 跟踪您的转账详细信息

代码(经过测试和工作):

    AmazonS3Client s3;
    BasicAWSCredentials credentials;
    TransferUtility transferUtility;
    final TransferObserver observer;
    String key = "YOUR_SPACES_KEY";
    String secret = "YOUR_SPACES_SECRET_KEY";

    credentials = new BasicAWSCredentials(key, secret);
    s3 = new AmazonS3Client(credentials);
    s3.setEndpoint("https://BUCKET_NAME.nyc3.digitaloceanspaces.com/DIRECTORY_IF_NEEDED");

    transferUtility = new TransferUtility(s3, activity);
    CannedAccessControlList filePermission = CannedAccessControlList.PublicRead;

    observer = transferUtility.upload(
            "", //empty bucket name, included in endpoint
            "FILE_NAME.PNG",
            new File(), //a File object that you want to upload
            filePermission
    );

    observer.setTransferListener(new TransferListener() {
        @Override
        public void onStateChanged(int id, TransferState state) {
            if (state.COMPLETED.equals(observer.getState())) {
                Toast.makeText(activity, "Space upload completed !!", Toast.LENGTH_SHORT).show();
            }
        }

        @Override
        public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
        }

        @Override
        public void onError(int id, Exception ex) {
            Toast.makeText(activity, "Space upload error: " + ex.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });

参考自:http://yasirameen.com/2016/10/uploading-file-to-amazon-s3/ http://yasirameen.com/2016/10/uploading-file-to-amazon-s3/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用适用于 Android 的 AWS 开发工具包将图像上传到 Digital Ocean Spaces? 的相关文章

随机推荐