2016-06-21 6 views
4

Google Cloud Storageを使用して画像をアップロードしています。私は現在、クラウドコンソールからテストしています。 パブリックリンクを取得するために[共有する]チェックボックスをオンにすると、画像をアップロードした後、公開されているURL(https://storage.googleapis.com/bucket_name/pictureName)(明らかに)が表示されます。私は公にチェックボックス共有をオフにした場合Google Cloud Storageの公開リンクは無効になりません。

はその後、その要求はうまくいくが、公開URLが公にアクセス可能な状態のまま要求

Request URL:https://clients6.google.com/storage/v1_internal/b/bucketName/o/pictureName.jpg/acl/allUsers?key=AIzaSyCI-yuie5UVOi0DjtiCwWBwQ1djkiuo1g 
Request Method:DELETE 

になります。私はそれがしばらく有効だったと思ったが、1時間後もまだ利用可能であった。 公開URLを削除する正しい方法は何ですか?どのように私はそれを公開した後に格納されたファイルへのアクセスを制限するのですか?

答えて

2

cache control and consistencyのマニュアルを参照してください。具体的には

メモ:キャッシュの有効期間を指定しない場合、公開アクセス可能な オブジェクトを最大60分間キャッシュできます。

私はこれが意図したとおりに動作していて、オブジェクトがキャッシュされていると推測しています。少し待ってみましたか?

+1

実際、しばらくしてから使用できなくなりました。 –

2

Sharing your data publiclyには、オブジェクトを一般公開することをやめる2つの方法があることが示されています。

  1. 公的あなたはすでに述べてきたように、共有の下にあるチェックボックスの選択を解除します。
  2. オブジェクトのアクセス許可を編集し、IDがallUsersのエントリを削除します。

あなたがまだオブジェクトに一般にアクセスできる理由は、本当に@jterraceで述べたようにキャッシュされているためです。参照されたCache control and consistency記事は、この最終的な一貫性の影響を説明しています。

この動作は、オブジェクトを公開して共有し、直後に共有を解除することでテストできます。ほとんどの場合、オブジェクトはキャッシュ期間内にパブリックにアクセス可能になります。 max-ageのように、Cache-Controlヘッダーを指定することにより、この期間を短縮することができます。

0

あなたの共有公開URLがhttps://storage.googleapis.com/bucket_name/pictureNameの場合。あなたはファイルを削除したり、共有をオフにした場合

公的 をチェックボックス問題を回避するにはGoogleのクラウド、

のデフォルトのキャッシュ時間は60分まで利用可能です https://storage.googleapis.com/bucket_name/pictureName?avoidCache=1

のようなクエリパラメータを渡す必要があります

毎回、クエリ文字列で乱数が渡されます。

関連する問題