【问题标题】:Not able to list S3 Buckets in react-native无法在 react-native 中列出 S3 存储桶
【发布时间】:2020-08-31 15:16:48
【问题描述】:

我正在开发适用于 iOS 和 Android 的 react-native 移动应用程序。我正在尝试使用aws-sdk 访问AWS S3 存储桶以获取javascript

以下是我执行的步骤:

  1. 在我的react-native 代码上安装npm
  2. 使用import AWS from 'aws-sdk/dist/aws-sdk-react-native 在我的javascript 类上导入库
  3. 使用我的accessKeyIdsecretAccessKey 初始化S3
  4. 尝试列出我的S3 文件夹中的存储桶。但是我收到以下错误:

{"message: The request signature we calculated does not match the signature you provided. Check your signing key and signing method, "code": "SignatureDoesNotMatch}

代码片段:

var awsCred = new AWS.Credentials({
      accessKeyId: 'xxxxxxx',
      secretAccessKey: 'xxxxxxxxxxxxxx',
    });

    const s3 = new AWS.S3({
      region: 'my-region',
      apiVersion: '2006-03-01',
      signatureVersion: 'v4',
      credentials: awsCred,
    });

    var bucketParams = {
      Bucket: 'bucket_name',
    }; 

s3.listObjects(bucketParams, function(err, data) {
if (err) {
Alert.alert('Error', JSON.stringify(err));
} else {
Alert.alert('Success', JSON.stringify(data));
}
});

任何想法将不胜感激!

【问题讨论】:

  • 再次检查密钥对于给定的访问密钥是否正确。并确保这组凭据适用于 awscli (aws s3 ls mybucket --region x)。
  • @jarmod:我确信accessKeyIdsecretAccessKey 组合可以正常工作。我尝试使用其中一个 Chrome 扩展程序的凭据检索数据,并且能够毫无问题地访问存储桶。但问题仍然存在于我的react-native 应用程序中

标签: amazon-web-services react-native amazon-s3 aws-sdk-js aws-sdk-nodejs


【解决方案1】:

尝试在没有签名版本的情况下调用 S3 构造函数。只需使用凭据就足够了。

【讨论】:

  • 我也试过了,但不幸遇到了同样的错误
猜你喜欢
  • 2021-01-19
  • 1970-01-01
  • 2017-11-16
  • 2020-01-24
  • 2021-07-03
  • 1970-01-01
  • 2010-11-21
  • 2017-06-08
  • 1970-01-01
相关资源
最近更新 更多