【问题标题】:Android Amazon s3 bucketAndroid Amazon s3 存储桶
【发布时间】:2016-08-25 09:26:46
【问题描述】:

如何从特定文件夹中的 Amazon Web Services S3 存储桶下载文件。

截至目前,我在我的 android studio 中导入 amazon transfer Utility 项目示例,它工作正常没问题,但每当我从 AWS-S3 存储桶下载文件时,文件下载到默认外部存储位置。 因此,我希望将文件下载到特定文件夹中,例如 storage/folder_name/file_name.txt

【问题讨论】:

    标签: android amazon-web-services


    【解决方案1】:

    您可以使用AWS SDK 将文件下载到您想要的任何位置。 或者使用 CLI 工具,例如 AWS CLIs3cmd

    【讨论】:

      【解决方案2】:

      试试这个..我在我的项目中使用它能够将图像下载到特定文件夹..

       File imageImage = new File(mContext.getDir(USER_PROFILE_DIRECTORY, Context.MODE_PRIVATE)+ ImageName).getAbsoluteFile();
       Download(checkImage,Constants.AMAZON_BUCKET_IMAGE,ImageName);
      
      /**
       * To download the image from the Amazon S3 bucket and store the image locally to the particular directory
       * @param DownloadingImagePath Source path of the image file to be stored
       * @param ImageName Image file name / Object key of Amazon S3
       * @param ImageBucket Amazon S3 bucket name
      */
      public void Download(File DownloadingImagePath,String ImageBucket,String ImageName){
      try{
            AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
            AmazonS3 s3 = new AmazonS3Client(credentials);
                      java.security.Security.setProperty("networkaddress.cache.ttl" , "60");
                      s3.setRegion(Region.getRegion(Regions.AP_SOUTHEAST_1));
                      s3.setEndpoint("https://s3-ap-southeast-1.amazonaws.com/");
                      TransferUtility transferUtility = new TransferUtility(s3, mContext);
                      TransferObserver observer = transferUtility.download(ImageBucket, ImageName, DownloadingImagePath);
                      observer.setTransferListener(new TransferListener() {
                          @Override
                          public void onStateChanged(int id, TransferState state) {
                              //Log.e("Amazon Stats",state.name());
                          }
      
                          @Override
                          public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) {
      
                          }
      
                          @Override
                          public void onError(int id, Exception ex) {
      
                          }
                      });
                      } catch (Exception ignored){
                  }
              }
      

      【讨论】:

      • 不客气。如果此答案对您有帮助,请接受。它可能有助于其他人解决如何寻找相同的东西..享受编码............
      • 你好安丹,..我可以按照你的建议去做..还有一个问题...我在 S3 存储桶中有这么多文件,但我只下载了那些我单击...所以,我想从本地/外部存储中的 S3 存储桶中下载所有文件.....任何进一步的建议......
      • 我的图片是保存在bucket里面的一个文件夹里的,是不是一定要提到这个文件夹作为bucket的名字还是key里面提到呢?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 2023-02-26
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多