@@ -187,7 +187,8 @@ function putBucket(params, callback) {
187187 domain : self . options . Domain ,
188188 bucket : params . Bucket ,
189189 region : params . Region ,
190- appId : appId
190+ appId : appId ,
191+ isLocation : true ,
191192 } ) ;
192193 callback ( null , {
193194 Location : url ,
@@ -1143,7 +1144,15 @@ function putObject(params, callback) {
11431144 return callback ( err ) ;
11441145 }
11451146 if ( data && data . headers && data . headers [ 'etag' ] ) {
1147+ var url = getUrl ( {
1148+ domain : self . options . Domain ,
1149+ bucket : params . Bucket ,
1150+ region : params . Region ,
1151+ appId : params . AppId ,
1152+ object : params . Key ,
1153+ } ) ;
11461154 return callback ( null , {
1155+ Location : url ,
11471156 ETag : data . headers [ 'etag' ] ,
11481157 statusCode : data . statusCode ,
11491158 headers : data . headers ,
@@ -1618,6 +1627,7 @@ function multipartUpload(params, callback) {
16181627 * @return {Object } data.CompleteMultipartUpload 完成分块上传后的文件信息,包括Location, Bucket, Key 和 ETag
16191628 */
16201629function multipartComplete ( params , callback ) {
1630+ var self = this ;
16211631 var headers = { } ;
16221632
16231633 headers [ 'Content-Type' ] = 'application/xml' ;
@@ -1659,7 +1669,16 @@ function multipartComplete(params, callback) {
16591669 if ( err ) {
16601670 return callback ( err ) ;
16611671 }
1672+ var url = getUrl ( {
1673+ domain : self . options . Domain ,
1674+ bucket : params . Bucket ,
1675+ region : params . Region ,
1676+ appId : params . AppId ,
1677+ object : params . Key ,
1678+ isLocation : true ,
1679+ } ) ;
16621680 var result = util . extend ( data . CompleteMultipartUploadResult , {
1681+ Location : url ,
16631682 statusCode : data . statusCode ,
16641683 headers : data . headers ,
16651684 } ) ;
@@ -1848,6 +1867,10 @@ function getObjectUrl(params, callback) {
18481867 appId : params . AppId || self . options . AppId || '' ,
18491868 object : params . Key ,
18501869 } ) ;
1870+ if ( params . Sign !== undefined && ! params . Sign ) {
1871+ callback ( null , { Url : url } ) ;
1872+ return url ;
1873+ }
18511874 var authorization = getAuthorizationAsync . call ( this , {
18521875 Method : params . Method || 'get' ,
18531876 Key : params . Key ,
@@ -1951,6 +1974,9 @@ function getUrl(params) {
19511974 if ( action ) {
19521975 url += action ;
19531976 }
1977+ if ( params . isLocation ) {
1978+ url = url . replace ( / ^ h t t p s ? : \/ \/ / , '' ) ;
1979+ }
19541980 return url ;
19551981}
19561982
0 commit comments