上传成功后生成下载 URL
Generate Download URL After Successful Upload
我已经通过JS通过Google云存储成功上传文件到Firebase的存储!我注意到的是,与直接上传的文件不同,通过Google云端上传的文件只有一个存储位置URL,而不是完整的URL,这意味着它无法读取!我想知道是否有一种方法可以在上传时为 Firebase 实际存储的 "Download URL" 部分生成完整的 URL。
正在使用的代码:
var filename = image.substring(image.lastIndexOf("/") + 1).split("?")[0];
var gcs = gcloud.storage();
var bucket = gcs.bucket('bucket-name-here.appspot.com');
request(image).pipe(bucket.file('photos/' + filename).createWriteStream(
{metadata: {contentType: 'image/jpeg'}}))
.on('error', function(err) {})
.on('finish', function() {
console.log(imagealt);
});
您可以:
a) 通过 firebase 控制台创建下载 url
b) 如果您尝试从 firebase 客户端以编程方式下载url,系统会为您即时创建一个。
使用GCloud客户端时,要使用getSignedUrl()
下载文件,如下:
bucket.file('photos/' + filename).getSignedUrl({
action: 'read',
expires: '03-17-2025'
}, function(err, url) {
if (err) {
console.error(err);
return;
}
// The file is now available to read from this URL.
request(url, function(err, resp) {
// resp.statusCode = 200
});
});
我已经通过JS通过Google云存储成功上传文件到Firebase的存储!我注意到的是,与直接上传的文件不同,通过Google云端上传的文件只有一个存储位置URL,而不是完整的URL,这意味着它无法读取!我想知道是否有一种方法可以在上传时为 Firebase 实际存储的 "Download URL" 部分生成完整的 URL。
正在使用的代码:
var filename = image.substring(image.lastIndexOf("/") + 1).split("?")[0];
var gcs = gcloud.storage();
var bucket = gcs.bucket('bucket-name-here.appspot.com');
request(image).pipe(bucket.file('photos/' + filename).createWriteStream(
{metadata: {contentType: 'image/jpeg'}}))
.on('error', function(err) {})
.on('finish', function() {
console.log(imagealt);
});
您可以:
a) 通过 firebase 控制台创建下载 url
b) 如果您尝试从 firebase 客户端以编程方式下载url,系统会为您即时创建一个。
使用GCloud客户端时,要使用getSignedUrl()
下载文件,如下:
bucket.file('photos/' + filename).getSignedUrl({
action: 'read',
expires: '03-17-2025'
}, function(err, url) {
if (err) {
console.error(err);
return;
}
// The file is now available to read from this URL.
request(url, function(err, resp) {
// resp.statusCode = 200
});
});