I am using the rest api to upload files to firebase storage as described in the following answer https://stackoverflow.com/a/65462416/8634683.
And I would like to set the cache-control metadata but can't figure it out.
I found the next firebase doc - https://firebase.google.com/docs/storage/web/file-metadata but didn't saw any information about the rest API.
=== Update ====
So I did a little bit of reverse engineering, , and I found that when I am using the JS-SDK, the library add a prefix to the file, Any one know what is the meaning of the first long number?
So I found the answer:
Send the blob file with a prefix and suffix as follow:
let prefix = `
--23483860318350978727016216849495
Content-Type: application/json; charset=utf-8
Content-Disposition: form-data; name="metadata"
{"name":"${filePath}", "cacheControl":"max-age=7200","contentType":"${fileType}"}
--23483860318350978727016216849495
Content-Type: ${fileType}`
let suffix = '\n--23483860318350978727016216849495--'
let blobWithMetadata = new Blob([prefix, blob, suffix])
and add the following headers:
headers = {
'x-goog-upload-protocol': 'multipart',
'content-type': 'multipart/related; boundary=23483860318350978727016216849495'
}