2

Google Cloud Storage経由でFirebaseのストレージにファイルをアップロードしました!私が気づいたのは、直接アップロードされたファイルとは異なり、Google Cloud経由でアップロードされたファイルには完全なURLではないため、読み込めないことがわかります。 Firebaseの実際のストレージの「ダウンロードURL」部分のアップロード時に完全なURLを生成する方法があるかどうか疑問に思っています。アップロード成功後にダウンロードURLを生成

enter image description here

コードが使用されている:

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);  


    }); 

答えて

3

の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 
    }); 
}); 
+1

こんにちは、ありがとうございました!私はそれをcreateWriteStreamとどのように組み合わせるのですか?それとも、それ自身のコードですか? – HalesEnchanted

+0

'on '' finish '、function(){/ *ダウンロードを呼び出す –

+0

あなたはスターですか?スターですか?ありがとうございました:) Firebaseのストレージにはまだリンクが表示されませんが、それはまだありません。動作しているGoogleのクラウドURLを返します。 – HalesEnchanted

2

次のいずれかが可能です。

A)firebaseコンソール

create new download link

b)の場合を通じてダウンロードURLを作成します。あなたはダウンルームを取得しようとするfirebaseクライアントからプログラム的にoadurlを作成すると、その場で作成されます。

+0

ねえ、ありがとうございました!最初のものはトークンを作成するだけですか?それは完全なURLではありません:(第2のものは右のように聞こえますが、どうすればいいですか? – HalesEnchanted

+0

最初に "フルURL"を作成してトークンを作成すると、それが可能になります。ダウンロードURLではなくトークンだけ? –

+0

2番目のファイルはfirebase storage sdkを使用する必要があります。[Getting Started Guide](https://firebase.google.com/docs/storage/web/download-files) –

関連する問題