【问题标题】:Simple upload to S3 from android从android简单上传到S3
【发布时间】:2015-11-07 02:08:38
【问题描述】:

我在网上搜索了将简单文件从 android 上传到 s3 的方法,但找不到任何可行的方法,我认为这是因为缺乏具体步骤。

1.) https://mobile.awsblog.com/post/Tx1V588RKX5XPQB/TransferManager-for-Android

这是我找到的最好的指南,但它没有说明要包含哪些库。我下载了适用于 android 的 aws sdk,里面有很多罐子。如此直观,我包含了 aws-android-sdk-s3-2.2.5.jar 但这并不完整。它没有 BasicAWSCredentials 类。

2.)我在示例中查看了更多内容,但它不像 #1 那样简单,而且我无法使用凭据获得核心上传功能。

感谢您的帮助

【问题讨论】:

    标签: java android amazon-web-services amazon-s3 upload


    【解决方案1】:

    抱歉这篇文章是很久以前写的:)。

    1) 要使其工作,除了 aws.android-sdk-s3-2.2.5.jar 之外,您还需要 aws-android-sdk-core-2.2.5.jar。

    2) 您指的是哪个样本?最近,AWS Android SDK 引入了 TransferUtility 作为 TransferManager 的替代品。您可以找到样本here。还有一个博客解释了迁移AWS SDK for Android Transfer Manager to Transfer Utility Migration Guide

    PS:不建议在移动应用程序中使用 AWSBasicCredentials。相反,请尝试 Cognito Identity。请参阅其developer guide

    【讨论】:

      【解决方案2】:

      S3UploadService 是一个处理上传到 Amazon S3 的库。它提供了一个名为 S3UploadService 的服务和一个静态方法,您可以在其中提供一个上下文(因此静态方法可以启动服务)、一个文件、一个布尔值,指示是否应该在上传完成后删除所述文件,并且您可以选择设置回调(不是就像一个普通的回调一样。它的工作方式在 README 文件中有解释)。

      它是一个 IntentService,因此即使用户在上传时终止应用,上传也会运行(因为它的生命周期未附加到应用的生命周期)。

      要使用这个库,您只需在清单中声明服务:

      <application
          ...>
      
          ...
      
          <service
              android:name="com.onecode.s3.service.S3UploadService"
              android:exported="false" />
      </application>
      

      然后构建一个 S3BucketData 实例并调用 S3UploadService.upload():

          S3Credentials s3Credentials = new S3Credentials(accessKey, secretKey, sessionToken);
          S3BucketData s3BucketData = new S3BucketData.Builder()
                  .setCredentials(s3Credentials)
                  .setBucket(bucket)
                  .setKey(key)
                  .setRegion(region)
                  .build();
      
          S3UploadService.upload(getActivity(), s3BucketData, file, null);
      

      要添加这个库,您需要将 JitPack 存储库添加到您的根 build.gradle:

      allprojects {
          repositories {
              ...
              maven { url "https://jitpack.io" }
          }
      }
      

      然后添加依赖:

      dependencies {
          compile 'com.github.OneCodeLabs:S3UploadService:1.0.0@aar'
      }
      

      这里是回购的链接: https://github.com/OneCodeLabs/S3UploadService

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2018-07-10
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 2021-04-26
        • 1970-01-01
        • 2015-04-28
        • 2018-08-24
        相关资源
        最近更新 更多