gpt4 book ai didi

node.js - 如何使用 NodeJS SDK for IBM Cloud Object Storage 生成预签名链接?

转载 作者:太空宇宙 更新时间:2023-11-04 00:06:20 25 4
gpt4 key购买 nike

我正在使用 IBM Cloud Object Storage 及其 NodeJS SDK ( https://github.com/IBM/ibm-cos-sdk-js )。

我想生成预签名链接,以便用户无需身份验证即可访问存储桶中的内容。

当我调用 cos.getSignedUrl('getObject', ...) 时,收到错误UnsupportedSigner:预签名仅支持 S3 或 SigV4 签名。

如何解决这个问题?

最佳答案

首先,您需要为您的服务实例生成 HMAC key ,如 How do I create HMAC credentials for IBM Cloud Object Storage using the CLI? 中所述。

获得 HMAC 访问 key 和 secret 访问 key 后,请按以下方式更改 COS SDK 的初始化:

const config = {
endpoint: 'cos endpoint',
apiKeyId: 'cos api key',
ibmAuthEndpoint: 'https://iam.ng.bluemix.net/oidc/token',
serviceInstanceId: 'cos crn'
// these two are required to generate presigned URLs
credentials: new COS.Credentials('<access key>', '<secret_access_key>', sessionToken = null),
signatureVersion: 'v4'
};
const cos = new COS.S3(config);

然后您可以使用以下命令生成预签名链接:

const url = await cos.getSignedUrl('getObject', {
Bucket: '<your-bucket-name>',
Key: '<your-key-name>',
Expires: 60 * 5, // 5 minutes
});

关于node.js - 如何使用 NodeJS SDK for IBM Cloud Object Storage 生成预签名链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52100144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com