Так что у меня такая же проблема, как и в этом посте . Я получаю удаленную загрузку URL-адреса файла в корзину внутри функции firebase.
Однако эта проблема возникает только для файлов типа PDF.
Для других типов, которые я тестировал, таких как ms-word, ms-excel, ppt-presentation, загрузка происходит и публичный URL успешно возвращается.
function index.js
const { Storage } = require('@google-cloud/storage'),
fs = require('fs'), os = require('os'), path = require('path'),
storage = new Storage({
projectId: firebaseCredentials.projectId,
keyFilename: './xxxv-xx.json'
}),
bucket = storage.bucket(firebaseCredentials.storageBucket),
request = require('request').defaults({ encoding: null })
console.log(`bucket? -> \n ${bucket}`)
return request.get(incomingMessageData.url, async (error, response, body) => {
if (!error && response.statusCode == 200) {
const tempFilePath = path.join(os.tmpdir(), incomingMessageData.file)
console.log(`tempFilePath -> ${tempFilePath} \n os.tmpdir() -> ${os.tmpdir()}`)
fs.writeFile(tempFilePath, body, async err => {
if (err) throw err;
console.log(`The file has been saved to temp storage! \n
Now starting to upload -> ${incomingMessageData.phone}/${incomingMessageData.file}
`);
try {
console.log('inside try catch bucket upload')
// this approach works
const bucketFile = bucket.file(`${incomingMessageData.phone}/${incomingMessageData.file}`);
await bucketFile.save(body)
console.log('bucket upload finished')
// the problem is happenning here. It´s throwing generic 'connection error' message that withouth further details is elusive to solve
let result = await bucketFile.getSignedUrl({
action: 'read',
expires: '03-17-2025'
}), url
if (result[0].indexOf('http') < 0) {
console.error('Error getting SignedUrl ', result);
url = result.toString()
} else {
url = result[0]
}
let metadata = await bucketFile.getMetadata(),
size = bytesToSize(metadata[0].size)
// handle url
console.log(`${tempFilePath} uploaded to ${bucket.name}. \n Got
uploadUrl? -> ${url}`)
Для файлов типа pdf журнал gcp выглядит следующим образом
И для других типов файлов, таких как ms-word, журнал показывает