nl_tokens: 获取文件下载链接
pl_tokens: function getObjectUrl ( params , callback ) { var self = this ; var url = getUrl ( { ForcePathStyle : self . options . ForcePathStyle , protocol : params . Protocol || self . options . Protocol , domain : self . options . Domain , bucket : params . Bucket , region : params . Region , object : params . Key , } ) ; if ( params . Sign !== undefined && ! params . Sign ) { callback ( null , { Url : url } ) ; return url ; } var AuthData = getAuthorizationAsync . call ( this , { Action : ( ( params . Method || '' ) . toUpperCase ( ) === 'PUT' ? 'name/cos:PutObject' : 'name/cos:GetObject' ) , Bucket : params . Bucket || '' , Region : params . Region || '' , Method : params . Method || 'get' , Key : params . Key , Expires : params . Expires , } , function ( err , AuthData ) { if ( ! callback ) return ; if ( err ) { callback ( err ) ; return ; } var signUrl = url ; signUrl += '?' + ( AuthData . Authorization . indexOf ( 'q-signature' ) > - 1 ? AuthData . Authorization : 'sign=' + encodeURIComponent ( AuthData . Authorization ) ) ; AuthData . XCosSecurityToken && ( signUrl += '&x-cos-security-token=' + AuthData . XCosSecurityToken ) ; AuthData . ClientIP && ( signUrl += '&clientIP=' + AuthData . ClientIP ) ; AuthData . ClientUA && ( signUrl += '&clientUA=' + AuthData . ClientUA ) ; AuthData . Token && ( signUrl += '&token=' + AuthData . Token ) ; setTimeout ( function ( ) { <mask> ( null , { Url : signUrl } ) ; } ) ; } ) ; if ( AuthData ) { return url + '?' + AuthData . Authorization + ( AuthData . XCosSecurityToken ? '&x-cos-security-token=' + AuthData . XCosSecurityToken : '' ) ; } else { return url ; } }