开发工具bug
发布于 5 年前 作者 mingxiong 3392 次浏览 来自 问答
getCredentials(){
        return   wepy.request({
               url: 'cos/sts',
               method: "get",
           })
    }
    async initCos(){
        let result
        try {
            result = await this.getCredentials()
             
        } catch (error) {
            console.log(error);
            $Toast({
                content: '出错了哦☹️',
                type: 'error'
            });
        }
        var cos = new COS({
            // ForcePathStyle: true, // 如果使用了很多存储桶,可以通过打开后缀式,减少配置白名单域名数量,请求时会用地域域名
            getAuthorization: function (options, callback) {
                // 异步获取签名
                var data = result.data;
                var credentials = data.credentials;
                callback({
                    TmpSecretId: credentials.tmpSecretId,
                    TmpSecretKey: credentials.tmpSecretKey,
                    XCosSecurityToken: credentials.sessionToken,
                    ExpiredTime: data.expiredTime, // SDK 在 ExpiredTime 时间前,不会再次调用 getAuthorization
                });
            }
        });
        this.cos = cos
    }

这个代码有错吗?为什么开发工具不执行,也不能调试,打印出result  创建cos实例的时候回调函数直接不执行

2 回复

这边试了下能打印出 result 和 调试的

然后看你的截图,你说的实例化的 cos 对下没有获取到参数,这边建议你再看下 cos 的文档 https://cloud.tencent.com/document/product/436/12260。目前从你给的代码片段看你是通过 getAuthorization 去获取签名 secretid 的值,而不是说直接前端传固定的签名,来创建 cos 实例(直接创建时传签名,实例才会有)。目前你使用的方式是通过 getAuthorization 异步去获取签名。这边你可以参考文档在下面加一段获取内容的调用代码,就会发现在获取时会调用 getAuthorization

回到顶部