ボタンクリックイベントでFirebaseストレージからファイルをダウンロードしようとしていますが、アクセス制御許可の元になりました。gs:// <your-cloud-storage-bucket>にはCORS設定がありません
https://firebase.google.com/docs/storage/web/download-files
私はCORSを設定しようとしています上記のリンクを1として。私はgsutilコマンドラインツールをインストールしました。しかし、私はその後、gsutil cors get gs://<your-cloud-storage-bucket>/ has no CORS configuration
を返すコマンドgsutil cors get gs://<your-cloud-storage-bucket>
を使用し、私はこのコード
[
{
"origin": ["*"],
"method": ["GET"],
"maxAgeSeconds": 3600
}
]
をコピーする必要がcors.jsonファイルを見つけることができません。
まず、ストレージバケットのCORS設定ファイルを作成する必要がありますか?
以下は、私のボタンをクリックする方法です。エラーがコードに含まれている場合。
downloadAttachment(fileName) {
var uid = AuthService.uid;
let storageRef = firebase.storage().ref().child('assignments/' + uid + '/' + fileName);
storageRef.getDownloadURL().then(url => {
console.log(url);
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.onload = function (event) {
var blob = xhr.response;
};
xhr.open('GET', url);
xhr.send();
});
}
エラー:
いいえ「アクセス制御 - 許可 - 起源」ヘッダは、要求されたリソース上に存在します。 Origin 'http://localhost:4200'はアクセスできません。
ありがとうございます。
この 'cors.json'ファイルはどこに保存しますか? – PR7
cors.jsonファイルは、gsutilを呼び出した後はどこにでも保存する必要はありません。必要に応じて、PCのホームディレクトリなど、必要な場所に保存できます。しかし、いったん "gsutil cors set"を初めて実行すると、それ以降はいつでも 'gsutil cors get'で現在のCORS設定を取得できます。だから、後で設定を変更したり、後でもう一度追加したいのであれば、 'gsutil cors get'の出力を新しいファイルにコピーして変更を追加し、その新しいファイルに 'gsutil cors set'を呼び出すことができます。 – sideshowbarker
私は 'gsutil cors set cors-json-file C:¥Users¥Prashant¥AppData¥Local¥Google¥Cloud SDK¥cors.json'コマンドを使用しました。それは 'CommandExceptionを返します:" cors "コマンドは" file:// "URLをサポートしません。 'gs:// URLを使用しましたか? ' – PR7