@@ -3,7 +3,7 @@ const cos = require('./uploader/cos');
33const qiniu = require ( './uploader/qiniu' ) ;
44const s3 = require ( './uploader/s3' ) ;
55const AVError = require ( './error' ) ;
6- const AVRequest = require ( './request' ) . _request ;
6+ const { request , _request : AVRequest } = require ( './request' ) ;
77const { tap, transformFetchOptions } = require ( './utils' ) ;
88const debug = require ( 'debug' ) ( 'leancloud:file' ) ;
99const parseBase64 = require ( './utils/parse-base64' ) ;
@@ -196,6 +196,23 @@ module.exports = function(AV) {
196196 return file ;
197197 } ;
198198
199+ /**
200+ * Request file censor.
201+ * @since 4.13.0
202+ * @param {String } objectId
203+ * @return {Promise.<string> }
204+ */
205+ AV . File . censor = function ( objectId ) {
206+ if ( ! AV . _config . masterKey ) {
207+ throw new Error ( 'Cannot censor a file without masterKey' ) ;
208+ }
209+ return request ( {
210+ method : 'POST' ,
211+ path : `/files/${ objectId } /censor` ,
212+ authOptions : { useMasterKey : true } ,
213+ } ) . then ( res => res . censorResult ) ;
214+ } ;
215+
199216 _ . extend (
200217 AV . File . prototype ,
201218 /** @lends AV.File.prototype */ {
@@ -652,6 +669,18 @@ module.exports = function(AV) {
652669 _ . extend ( this , value ) ;
653670 return this ;
654671 } ,
672+
673+ /**
674+ * Request file censor
675+ * @since 4.13.0
676+ * @return {Promise.<string> }
677+ */
678+ censor ( ) {
679+ if ( ! this . id ) {
680+ throw new Error ( 'Cannot censor an unsaved file' ) ;
681+ }
682+ return AV . File . censor ( this . id ) ;
683+ } ,
655684 }
656685 ) ;
657686} ;
0 commit comments