Я пытаюсь загрузить base64 файл / изображение в облачное хранилище Google , используя подписанный URL . Мой код на стороне сервера (NodeJS) выглядит примерно так:
let {Storage} = require('@google-cloud/storage');
storage = new Storage({
projectId,
keyFilename: gcloudServiceAccountFilePath,
});
function generateSignedUrl(){
const options = {
version: 'v4',
action: 'write',
expires: Date.now() + 15 * 60 * 1000, // 15 minutes
//contentType: 'application/octet-stream'
};
}
const [url] = await storage.bucket(gcloudBucket)
.file(`${fileRelativePath}`).getSignedUrl(options);
return url;
}
Теперь, когда я пытаюсь использовать POSTMAN с указанной ниже конфигурацией,
Request: PUT
URL: https://storage.googleapis.com/my-signed-url.. //generated from above code
Headers:
x-goog-acl: 'public-read'
Content-Type: 'image/jpeg'
Body:
raw : 'base64-file-conent'
Мой загруженный файл в GCS остается как base64, и размер файла также отличается, как вы можете видеть в хранилище.
![enter image description here](https://i.stack.imgur.com/pOI2m.png)
1-е изображение напрямую загружается в GCS с помощью перетаскивания.
2-е изображение загружено с помощью POSTMAN
Не уверен, что я что-то упускаю при создании подписанного URL или каких-либо заголовков при загрузке файла через почтальона.
Спасибо:)