@@ -75,20 +75,14 @@ async function getUploadUrl(versionTitle, fileName) {
7575 return response . data
7676}
7777
78- async function uploadFile ( url , headers , filePath ) {
79- const fileData = fs . readFileSync ( filePath )
78+ async function uploadFile ( url , headers , data ) {
8079 const response = await axios . request ( {
8180 method : 'PUT' ,
8281 url,
8382 headers,
84- data : fileData ,
83+ data,
8584 maxBodyLength : Infinity ,
86- validateStatus : status => status < 500 ,
8785 } )
88- if ( response . status >= 400 ) {
89- const body = typeof response . data === 'string' ? response . data . slice ( 0 , 200 ) : JSON . stringify ( response . data ) . slice ( 0 , 200 )
90- throw new Error ( `Upload failed with status ${ response . status } : ${ body } ` )
91- }
9286 return response . data
9387}
9488
@@ -111,16 +105,23 @@ async function publishToAtomgit() {
111105
112106 for ( const fileName of files ) {
113107 const filePath = path . join ( AssetsDir , fileName )
114- console . log ( `Uploading ${ fileName } (${ fs . statSync ( filePath ) . size } bytes)...` )
108+ const stat = fs . statSync ( filePath )
109+ const fileSizeMB = ( stat . size / 1024 / 1024 ) . toFixed ( 2 )
110+ console . log ( `Uploading ${ fileName } (${ stat . size } bytes / ${ fileSizeMB } MB)...` )
115111
116- const uploadUrl = await getUploadUrl ( versionTitle , fileName )
112+ const uploadUrlResponse = await getUploadUrl ( versionTitle , fileName )
117113
118- if ( ! uploadUrl ?. url ) {
119- console . error ( ` Invalid upload URL response:` , JSON . stringify ( uploadUrl ) . slice ( 0 , 200 ) )
114+ if ( ! uploadUrlResponse ?. url ) {
115+ console . error ( ` Invalid upload URL response:` , JSON . stringify ( uploadUrlResponse ) . slice ( 0 , 200 ) )
120116 continue
121117 }
122118
123- await uploadFile ( uploadUrl . url , uploadUrl . headers , filePath )
119+ console . log ( ` Upload URL prefix: ${ uploadUrlResponse . url . slice ( 0 , 80 ) } ...` )
120+
121+ const fileData = fs . createReadStream ( filePath )
122+ uploadUrlResponse . headers [ 'Content-Length' ] = stat . size
123+
124+ await uploadFile ( uploadUrlResponse . url , uploadUrlResponse . headers , fileData )
124125 console . log ( ` ${ fileName } done` )
125126 }
126127
0 commit comments