【问题标题】:How to upload file to AWS S3 using accessKey, secretKey and token?如何使用 accessKey、secretKey 和令牌将文件上传到 AWS S3?
【发布时间】:2017-04-15 21:26:31
【问题描述】:

我需要将文件上传到 AWS S3。我只有accessKey、secretKey和token,都是从第三方服务器获取的。

我正在尝试使用此代码:

mClient = new AmazonS3Client(new BasicSessionCredentials(accessKey, secretKey, token));
mClient.setRegion(Region.getRegion(Regions.US_EAST_1));
mUtility = new TransferUtility(mClient, mContext);
TransferObserver observer = mUtility.upload(mBucketName, remotePath, new File(localPath), CannedAccessControlList.PublicRead);

但总是得到拒绝访问错误。如何使用accessKey、secretKey和token正确上传文件?

【问题讨论】:

  • 检查存储桶是否存在并且您可以访问它。
  • @VaradChemburkar,是的,它存在并且我可以访问。我确切地知道这一点,因为另一个操作系统的应用程序可以很好地与这个 bucker 配合使用。但是我无法访问另一个应用程序的源代码。

标签: android amazon-s3


【解决方案1】:

您需要使用BasicSessionCredential 创建AmazonS3Client

mClient = new AmazonS3Client(new BasicSessionCredential(accessKey, secretKey, token));

【讨论】:

  • BasicAWSCredentials 只有两个参数。它没有令牌。
  • tokens 在一定时间后过期。
  • 我不缓存它。我从第三方服务器收到它并立即将其放入 BasicSessionCredential。
  • 您必须检查存储桶权限。 docs.aws.amazon.com/AmazonS3/latest/API/…
  • 但另一个操作系统的应用程序在相同的凭据、相同的第三方服务器和相同的存储桶下运行良好。也就是说权限没问题。
猜你喜欢
  • 2015-08-14
  • 1970-01-01
  • 2018-07-07
  • 2017-05-08
  • 1970-01-01
  • 2019-12-06
  • 2021-05-14
  • 2020-04-29
  • 1970-01-01
相关资源
最近更新 更多