123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- /* eslint-disable no-use-before-define */
- const { checkBucketName: _checkBucketName } = require('../utils/checkBucketName');
- const querystring = require('querystring');
- const {
- Base64: { encode: str2Base64 }
- } = require('js-base64');
- const proto = exports;
- proto.processObjectSave = async function processObjectSave(sourceObject, targetObject, process, targetBucket) {
- checkArgs(sourceObject, 'sourceObject');
- checkArgs(targetObject, 'targetObject');
- checkArgs(process, 'process');
- targetObject = this._objectName(targetObject);
- if (targetBucket) {
- _checkBucketName(targetBucket);
- }
- const params = this._objectRequestParams('POST', sourceObject, {
- subres: 'x-oss-process'
- });
- const bucketParam = targetBucket ? `,b_${str2Base64(targetBucket)}` : '';
- targetObject = str2Base64(targetObject);
- const content = {
- 'x-oss-process': `${process}|sys/saveas,o_${targetObject}${bucketParam}`
- };
- params.content = querystring.stringify(content);
- const result = await this.request(params);
- return {
- res: result.res,
- status: result.res.status
- };
- };
- function checkArgs(name, key) {
- if (!name) {
- throw new Error(`${key} is required`);
- }
- if (typeof name !== 'string') {
- throw new Error(`${key} must be String`);
- }
- }
|