Предполагая, что вы хотите использовать с помощью клиентских библиотек Google Cloud, я загрузил изображение с внешнего URL-адреса, используя Node.JS v8.9.4 и npm версии 5.6.0 ведро, используя этот код:
const {Storage} = require('@google-cloud/storage'),
request = require('request'),
bucket = 'BUCKET_NAME',
filename = 'FILE_NAME',
url = 'IMAGE_URL',
storage = new Storage({
projectId: 'PROJECT_ID',
keyFilename: 'auth.json'
});
var file = storage.bucket(bucket).file(filename);
request({url: url, encoding: null}, function(err, response, buffer) {
var stream = file.createWriteStream({
metadata: {
contentType: response.headers['content-type']
}
});
stream.end(buffer);
});
Убедитесь, что вы установили PROJECT_ID
, BUCKET_NAME
, FILE_NAME
и IMAGE_URL
;а также наличие в локальном каталоге файла ключа JSON служебной учетной записи .
Содержимое файла package.json:
{
"dependencies": {
"@google-cloud/storage": "^2.3.3"
}
}
Запустите код с помощью npm start server.js
.
Если вы хотите получить Подписанный URL для этого файла, добавьте следующий дополнительный код, который я нашел в документации :
// These options will allow temporary read access to the file
const options = {
action: 'read',
expires: '03-17-2025',
};
storage
.bucket(bucket)
.file(filename)
.getSignedUrl(options)
.then(results => {
const signed_url = results[0];
console.log(`The signed URL for ${filename} is ${signed_url}`);
})
.catch(err => {
console.error('ERROR:', err);
});
Не забудьте установить дату истечения на фактическую дату истечения срока, в которой вы заинтересованы, изменив значение expires
.