import config from '@/config'
const COS = require('./cos-wx-sdk-v5.js'); // 开发时使用
// const COS = require('./lib/cos-wx-sdk-v5.min.js'); // 上线时使用压缩包

const baseUrl = config.baseUrl

const cos = new COS({
	SimpleUploadMethod: 'putObject', // 强烈建议，高级上传、批量上传内部对小文件做简单上传时使用putObject,sdk版本至少需要v1.3.0
	getAuthorization: function(options, callback) {
		// 初始化时不会调用，只有调用 cos 方法（例如 cos.putObject）时才会进入
		// 异步获取临时密钥
		// 服务端 JS 示例：https://github.com/tencentyun/cos-js-sdk-v5/blob/master/server/
		// 服务端其他语言参考 COS STS SDK ：https://github.com/tencentyun/qcloud-cos-sts-sdk
		// STS 详细文档指引看：https://cloud.tencent.com/document/product/436/14048
		const stsUrl = baseUrl + '/cos/sts'; // stsUrl 替换成您自己的后端服务
		wx.request({
			url: stsUrl,
			data: {
				bucket: options.Bucket,
				region: options.Region,
			},
			dataType: 'json',
			success: function(result) {
				const data = result.data;
				const credentials = data && data.credentials;
				if (!data || !credentials) return console.error('credentials invalid');
				// 检查 credentials 格式
				console.log(credentials);
				callback({
					TmpSecretId: credentials.tmpSecretId,
					TmpSecretKey: credentials.tmpSecretKey,
					// v1.2.0之前版本的 SDK 使用 XCosSecurityToken 而不是 SecurityToken
					SecurityToken: credentials.sessionToken,
					// 建议返回服务器时间作为签名的开始时间，避免用户浏览器本地时间偏差过大导致签名错误
					StartTime: data.startTime, // 时间戳，单位秒，如：1580000000
					ExpiredTime: data.expiredTime, // 时间戳，单位秒，如：1580000900
				});
			}
		});
	}
});
export default cos;