File tree Expand file tree Collapse file tree 2 files changed +26
-2
lines changed
Expand file tree Collapse file tree 2 files changed +26
-2
lines changed Original file line number Diff line number Diff line change @@ -2587,7 +2587,8 @@ class File extends ServiceObject<File> {
25872587 }
25882588
25892589 const extensionHeaders = Object . assign ( { } , config . extensionHeaders ) ;
2590- extensionHeaders . host = 'storage.googleapis.com' ;
2590+ const fqdn = new url . URL ( config . cname || STORAGE_DOWNLOAD_BASE_URL ) ;
2591+ extensionHeaders . host = fqdn . host ;
25912592 if ( config . method === 'POST' ) {
25922593 extensionHeaders [ 'x-goog-resumable' ] = 'start' ;
25932594 }
@@ -2625,7 +2626,7 @@ class File extends ServiceObject<File> {
26252626
26262627 const canonicalRequest = [
26272628 config . method ,
2628- config . resource ,
2629+ config . cname ? `/ ${ config . name } ` : config . resource ,
26292630 canonicalQueryParams ,
26302631 extensionHeadersString ,
26312632 signedHeaders ,
Original file line number Diff line number Diff line change @@ -3040,6 +3040,29 @@ describe('File', () => {
30403040 }
30413041 ) ;
30423042 } ) ;
3043+
3044+ it ( 'should generate v4 signed url with provided cname' , done => {
3045+ const host = 'http://www.example.com' ;
3046+
3047+ file . getSignedUrl (
3048+ {
3049+ action : 'read' ,
3050+ cname : host ,
3051+ version : 'v4' ,
3052+ expires : Date . now ( ) + 2000 ,
3053+ } ,
3054+ ( err : Error , signedUrl : string ) => {
3055+ assert . ifError ( err ) ;
3056+ const expected =
3057+ 'http://www.example.com/file-name.png?' +
3058+ 'X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=client-email' +
3059+ '%2F20190318%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20190318T000000Z&' +
3060+ 'X-Goog-Expires=2&X-Goog-SignedHeaders=host&X-Goog-Signature=b228276adbab' ;
3061+ assert . strictEqual ( signedUrl , expected ) ;
3062+ done ( ) ;
3063+ }
3064+ ) ;
3065+ } ) ;
30433066 } ) ;
30443067
30453068 describe ( 'promptSaveAs' , ( ) => {
You can’t perform that action at this time.
0 commit comments