vinsin
vinsin

Reputation: 3

google storage error: Bucket is requester pays bucket but no user project provided

I want to download files using "file.json" which includes all URLs. Here I tried to use those code in Python, however I am getting this error:

  "code":400,"message":"Bucket is requester pays bucket but no user project provided"

I already set up my billing details when I created the GCP account. I really don't know how to solve it. I am not the owner of the bucket. I do have permission to get data from the bucket. Python code:

 import os
 from google.cloud.bigquery.client import Client

 os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'path/to/key.json'
 bq_client = Client()


 import json
 from google.cloud import storage
 client = storage.Client(project='my_projectID')
 bucket = client.get_bucket('the_bucket')

 file_json = bucket.get_blob('file.json')
 data = json.loads(file_json.download_as_string())

Upvotes: 0

Views: 1150

Answers (1)

somethingsomething
somethingsomething

Reputation: 2165

You need to provide the user_project in the request, which is a gcp project for which you have billing rights. The requests will then be charged to that project.

You can find a python code sample here: https://cloud.google.com/storage/docs/using-requester-pays#using

bucket = storage_client.bucket(bucket_name, user_project=project_id)

See here for which permissions you need in the user_project: https://cloud.google.com/storage/docs/requester-pays#requirements

serviceusage.services.use

Upvotes: 1

Related Questions