带有aws-amplify Storage的“配置中缺少凭据”

时间:2018-07-25 19:45:18

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

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

"aws-amplify": "^1.0.2"

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

经过一番挖掘,我发现在最新版本的aws-amplify中,一些新的密钥已添加到存储配置中。 “凭证”和“级别”。文档没有以任何方式提及这些内容,并且我无法确切找到此“凭证”密钥需要什么值才能正常工作(使用Auth和Storage的手动配置)。任何人都对此凭据对象的外观有任何想法?

2 个答案:

答案 0 :(得分:1)

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

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

    $ 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-*
    

答案 1 :(得分:0)

这是因为Amplify正在使用aws-sdk来获取credentials(accessKeyId, secretAccessKey)。但找不到它,因为您可能尚未配置它。因此,请先配置它,然后再配置aws-amplify。无需卸载任何内容。

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