UNPKG

@nos-sdk/nos-node-sdk

Version:

NOS Node.js SDK实现了NOS对象操作接口,基于此SDK能方便快速地实现JavaScript应用程序来使用NOS的对象存储服务。

43 lines 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const client_1 = require("../client"); const crypto_1 = require("crypto"); class NosClientAuthExt extends client_1.NosBaseClient { /** * 创建上传凭证,返回 Token 对象,里面有 `putPolicy` 和 `sign` 字段,前端可以通过此构建上传 Token * @param params */ createToken(params) { const putPolicyObject = { Bucket: params.bucket || this.options.defaultBucket, Object: params.objectKey, Expires: Math.floor(params.expires / 1000), ObjectSizeMin: params.objectSizeMin, ObjectSizeMax: params.objectSizeMax, MimeLimit: params.mimeLimit, OverWrite: params.overwrite }; if (putPolicyObject.MimeLimit && typeof putPolicyObject.MimeLimit !== 'string') { putPolicyObject.MimeLimit = putPolicyObject.MimeLimit.join(';'); } const putPolicyString = JSON.stringify(putPolicyObject); const putPolicy = Buffer.from(putPolicyString, 'utf8').toString('base64'); const ciper = crypto_1.createHmac('sha256', this.options.accessSecret); ciper.update(putPolicy, 'utf8'); const sign = ciper.digest('base64'); return { putPolicy, sign }; } /** * 创建上传凭证字符串,对 `createToken` 的简单包装,直接返回 accessKey:sign:putPolicy 字符串 * @param params */ createTokenString(params) { const { putPolicy, sign } = this.createToken(params); return `${this.options.accessKey}:${sign}:${putPolicy}`; } } exports.NosClientAuthExt = NosClientAuthExt; //# sourceMappingURL=auth.js.map