Google Cloud Storage
Upload-Here uses a service account that can create objects in your bucket. It does not need read or delete access.
1. Create a service account
- In the Google Cloud console open IAM & Admin → Service Accounts → Create service account.
- Name it, e.g.
upload-here, and click Create and continue. Skip project-level roles — we'll grant access on the bucket only. - Open the new service account → Keys → Add key → Create new key → JSON. A JSON file is downloaded; keep it safe.
2. Grant access to your bucket
Open Cloud Storage → Buckets → your bucket → Permissions → Grant access:
- Principal: the service account email (
upload-here@<project>.iam.gserviceaccount.com) - Role:
Storage Object Creator(roles/storage.objectCreator)
Optional: also grant a role containing storage.objects.list (for example a custom role with only that permission). With it, we can check whether a file name is already taken and keep the original name when it isn't. Without it, every uploaded file gets a timestamp suffix so nothing is overwritten.
3. Configure CORS on the bucket
Save the following as cors.json:
[
{
"origin": ["https://new.upload-here.com"],
"method": ["PUT", "POST", "OPTIONS"],
"responseHeader": ["Content-Type", "Content-Range", "Range", "x-goog-resumable"],
"maxAgeSeconds": 3600
}
]
Apply it with the gcloud CLI (Cloud Shell works too):
gcloud storage buckets update gs://YOUR-BUCKET --cors-file=cors.json
4. Add the credentials to Upload-Here
Go to Dashboard → Storage → Google Cloud, paste the entire contents of the JSON key file, enter your bucket under Test bucket and click Test & save.