【问题标题】:"Missing credentials in config" with aws-amplify Storage使用 aws-amplify 存储“配置中缺少凭据”
【发布时间】:2018-07-25 19:45:18
【问题描述】:

我最近从旧版本的 aws-amplify 升级到版本

"aws-amplify": "^1.0.2"

这样做时,我在尝试上传到我的存储桶时立即开始出错。 [WARN] 38:42.445 StorageClass - error uploading": CredentialsError: "Missing credentials in config"

经过一番挖掘,我发现在最新版本的 aws-amplify 的存储配置中添加了一些新密钥; “证书”和“级别”。文档没有以任何方式提到这些,我无法准确找到这个“凭据”密钥需要什么值才能正常工作(手动配置 Auth 和 Storage)。有人知道这个凭证对象应该是什么样子吗?

【问题讨论】:

  • 您找到解决方案了吗?我也是这种情况……
  • 放弃 Amplify 和 Cognito。使用 Firebase,您将不再有任何问题。

标签: amazon-web-services amazon-s3 aws-sdk aws-amplify


【解决方案1】:

您不需要手动设置凭据密钥,Amplify 会自动设置存储类的凭据。由于您的环境在更新之前工作正常,因此问题可能与 aws-sdk 软件包有关。该问题与您的node_modules 文件夹中的多个aws-sdk 软件包有关。通常,由于您的项目文件被缓存,因此简单地删除 aws-sdk 文件夹是行不通的。以下是解决 react-native 项目问题的步骤,但您可以根据自己的环境进行调整:

  1. 确保您的package.json 文件中的依赖项下没有aws-sdk,因为aws-amplify 已经包含AWS SDK。如果package.json 文件中有aws-sdk,请运行以下命令将其删除:

    $ npm uninstall aws-sdk --save
    
  2. 确保您使用的是最新版本的 aws-amplify 软件包。

  3. 从您的项目文件夹中删除 package-lock.json 文件(不要忘记创建文件的副本)。

  4. 运行

    $ rm -rf node_modules && npm install
    

    此命令将删除您的node_modules 文件夹并根据package.json 文件重新安装所有软件包。

  5. 您可以选择通过逐一输入以下命令来清除本地缓存:

    $ watchman watch-del-all
    $ rm -rf /tmp/haste-map-react-native-packager-*
    $ rm -rf /tmp/metro-bundler-cache-*
    

【讨论】:

    【解决方案2】:

    这是因为 Amplify 使用 aws-sdk 来获取 credentials(accessKeyId, secretAccessKey)。但它没有找到,因为你可能没有配置它。因此,在配置 aws-amplify 之前对其进行配置。无需卸载任何东西。

    AWS.config.update({...credential})
    Amplify.configure({...credential})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-05
      • 2017-08-31
      • 2021-06-13
      • 1970-01-01
      • 2021-12-31
      • 2022-01-02
      • 1970-01-01
      相关资源
      最近更新 更多