@@ -3,6 +3,7 @@ const path = require("path");
3
3
const https = require ( "https" ) ;
4
4
const { BlobServiceClient } = require ( "@azure/storage-blob" ) ;
5
5
const blobStorageContainer = "content" ;
6
+ const mime = require ( "mime-types" ) ;
6
7
7
8
process . env [ "NODE_TLS_REJECT_UNAUTHORIZED" ] = 0 ;
8
9
@@ -116,7 +117,14 @@ async function downloadBlobs(blobStorageUrl, localMediaFolder) {
116
117
117
118
for await ( const blob of blobs ) {
118
119
const blockBlobClient = containerClient . getBlockBlobClient ( blob . name ) ;
119
- await blockBlobClient . downloadToFile ( `${ localMediaFolder } /${ blob . name } ` ) ;
120
+ const extension = mime . extension ( blob . properties . contentType ) ;
121
+
122
+ if ( extension != null ) {
123
+ await blockBlobClient . downloadToFile ( `${ localMediaFolder } /${ blob . name } .${ extension } ` ) ;
124
+ }
125
+ else {
126
+ await blockBlobClient . downloadToFile ( `${ localMediaFolder } /${ blob . name } ` ) ;
127
+ }
120
128
}
121
129
}
122
130
@@ -127,8 +135,15 @@ async function uploadBlobs(blobStorageUrl, localMediaFolder) {
127
135
128
136
for ( const fileName of fileNames ) {
129
137
const blobName = path . basename ( fileName ) . split ( "." ) [ 0 ] ;
138
+ const contentType = mime . lookup ( path . extname ( fileName ) ) ;
139
+
130
140
const blockBlobClient = containerClient . getBlockBlobClient ( blobName ) ;
131
- await blockBlobClient . uploadFile ( fileName )
141
+
142
+ await blockBlobClient . uploadFile ( fileName , {
143
+ blobHTTPHeaders : {
144
+ blobContentType : contentType
145
+ }
146
+ } ) ;
132
147
}
133
148
}
134
149
@@ -150,4 +165,4 @@ module.exports = {
150
165
uploadBlobs,
151
166
deleteBlobs,
152
167
getStorageSasTokenOrThrow
153
- } ;
168
+ } ;
0 commit comments