首页 > 解决方案 > 如何在 javascript aws-sdk v3 中使用自定义凭据提供程序?

问题描述

我正在尝试从 javascript aws-sdk v2 迁移,但找不到任何有关如何迁移凭据的文档。我看到 s3 客户端的配置对象仍然存在credentials并且需要一个Credentials对象,但是文档中没有关于如何调用第三方 API 来获取令牌的内容。迁移指南升级说明中也没有提到它。

我的 v2 凭据提供程序设置如下:

const MyCredentialsProvider = new AWS.Credentials({ secretAccessKey: USER })
  MyCredentialsProvider.refresh = function refresh(callback) {
    const self = this
    getToken() // <-- custom API call
    .then(token => {
      self.accessKeyId = token
      self.expired = false
      self.expireTime = new Date(Date.now() + TOKEN_VALIDITY_PERIOD)
      callback()
    })
    .catch(err => {
      callback(err)
    })
  }

  const s3Config = {
    credentials: MyCredentialsProvider,
    endpoint: 'my.non-amazon-s3.com',
    region: 'us-west',
    forcePathStyle: true,
    maxRetries: isProd ? MAX_RETRIES : 2
  }

据我所知,AWS.Credentials在 v3 版本的 sdk 中没有类似的方法来刷新令牌。

标签: amazon-s3aws-sdk-js

解决方案


推荐阅读