google-cloud-storage

Is it possible to wget / curl protected files from GCS?


Is it possible to wget / curl protected files from Google Cloud Storage without making them public? I don't mind a fixed predefined token. I just want to avoid the case where my public file gets leeched, costing me good dollars.


Solution

  • Another way, if as you say you don't mind getting a token externally, is to use curl to set the 'Authorization' header in your call to GCS like so:

    curl -H "Authorization: Bearer 1/fFBGRNJru1FQd44AzqT3Zg" https://www.googleapis.com/storage/v1/b/bucket/o/object?alt=media
    

    The 'alt=media' query string parameter is necessary to download the object data directly instead of receiving a JSON response.

    You can copy and paste the token obtained by authorizing with the Cloud Storage JSON API separately in the OAuth 2.0 Playground.

    See also:
    https://cloud.google.com/storage/docs/access-control https://cloud.google.com/storage/docs/json_api/v1/objects/get