@@ -117,9 +117,12 @@ common.unzipFile = function (zipFile, outputPath) {
117117 } ) ;
118118} ;
119119
120- common . uptoken = function ( bucket , key ) {
121- var putPolicy = new qiniu . rs . PutPolicy ( bucket + ":" + key ) ;
122- return putPolicy . token ( ) ;
120+ common . getUploadTokenQiniu = function ( mac , bucket , key ) {
121+ var options = {
122+ scope : bucket + ":" + key
123+ }
124+ var putPolicy = new qiniu . rs . PutPolicy ( options ) ;
125+ return putPolicy . uploadToken ( mac ) ;
123126} ;
124127
125128common . uploadFileToStorage = function ( key , filePath ) {
@@ -209,27 +212,43 @@ common.getBlobDownloadUrl = function (blobUrl) {
209212
210213common . uploadFileToQiniu = function ( key , filePath ) {
211214 return new Promise ( ( resolve , reject ) => {
212- qiniu . conf . ACCESS_KEY = _ . get ( config , "qiniu.accessKey" ) ;
213- qiniu . conf . SECRET_KEY = _ . get ( config , "qiniu.secretKey" ) ;
215+ var accessKey = _ . get ( config , "qiniu.accessKey" ) ;
216+ var secretKey = _ . get ( config , "qiniu.secretKey" ) ;
214217 var bucket = _ . get ( config , "qiniu.bucketName" , "" ) ;
215- var client = new qiniu . rs . Client ( ) ;
216- client . stat ( bucket , key , ( err , ret ) => {
217- if ( ! err ) {
218- resolve ( ret . hash ) ;
218+ var mac = new qiniu . auth . digest . Mac ( accessKey , secretKey ) ;
219+ var conf = new qiniu . conf . Config ( ) ;
220+ var bucketManager = new qiniu . rs . BucketManager ( mac , conf ) ;
221+ bucketManager . stat ( bucket , key , ( respErr , respBody , respInfo ) => {
222+ if ( respErr ) {
223+ log . debug ( 'uploadFileToQiniu file stat:' , respErr ) ;
224+ return reject ( new AppError . AppError ( respErr . message ) ) ;
225+ }
226+ log . debug ( 'uploadFileToQiniu file stat respBody:' , respBody ) ;
227+ log . debug ( 'uploadFileToQiniu file stat respInfo:' , respInfo ) ;
228+ if ( respInfo . statusCode == 200 ) {
229+ resolve ( respBody . hash ) ;
219230 } else {
220231 try {
221- var uptoken = common . uptoken ( bucket , key ) ;
232+ var uploadToken = common . getUploadTokenQiniu ( mac , bucket , key ) ;
222233 } catch ( e ) {
223- return reject ( e ) ;
234+ return reject ( new AppError . AppError ( e . message ) ) ;
224235 }
225- var extra = new qiniu . io . PutExtra ( ) ;
226- qiniu . io . putFile ( uptoken , key , filePath , extra , ( err , ret ) => {
227- if ( ! err ) {
228- // 上传成功, 处理返回值
229- resolve ( ret . hash ) ;
230- } else {
236+ var formUploader = new qiniu . form_up . FormUploader ( conf ) ;
237+ var putExtra = new qiniu . form_up . PutExtra ( ) ;
238+ formUploader . putFile ( uploadToken , key , filePath , putExtra , ( respErr , respBody , respInfo ) => {
239+ if ( respErr ) {
240+ log . error ( 'uploadFileToQiniu putFile:' , respErr ) ;
231241 // 上传失败, 处理返回代码
232- reject ( new AppError . AppError ( JSON . stringify ( err ) ) ) ;
242+ return reject ( new AppError . AppError ( JSON . stringify ( respErr ) ) ) ;
243+ } else {
244+ log . debug ( 'uploadFileToQiniu putFile respBody:' , respBody ) ;
245+ log . debug ( 'uploadFileToQiniu putFile respInfo:' , respInfo ) ;
246+ // 上传成功, 处理返回值
247+ if ( respInfo . statusCode == 200 ) {
248+ return resolve ( respBody . hash ) ;
249+ } else {
250+ return reject ( new AppError . AppError ( respBody . error ) ) ;
251+ }
233252 }
234253 } ) ;
235254 }
0 commit comments