Installing Google Cloud SDK on FreeBSD:
This is easily done via package or ports:
pkg install google-cloud-sdk
You may also wish to install the Python modules:
pkg install py39-google-api-python-client
pkg install py39-google-cloud-storage
Installing Google Cloud SDK on Debian/Ubuntu:
Follow the instructions here which are summarized below
Add the Google Cloud SDK as a package source:
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
Install required dependencies:
sudo apt install apt-transport-https ca-certificates gnupg
Add Google Cloud public key:
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
Install Google Cloud SDK:
sudo apt update sudo apt install google-cloud-sdk
Prepping gCloud:
If a proxy server is required, set gcloud to use it:
gcloud config set proxy/type http gcloud config set proxy/address 10.10.10.100 gcloud config set proxy/port 3128
Configure gCloud. This will spit out a URL to paste in to browser, which will return an authorization code
gcloud init
This will generate an encrypted file ~/.gsutil/credstor that will be used for authentication. To re-authenticate:
gcloud auth login
To switch to a different project:
glcoud config set project <PROJECT_ID>
To switch to a different account:
gcloud config set account
To use a service account:
gcloud auth activate-service-account <ACCOUNT_EMAIL> --key-file=<JSON_KEY_FILE>
CLI commands for working with Google Cloud Storage
List existing buckets
gsutil ls
Create a storage bucket called ‘mybucket’
gsutil mb gs://mybucket
Get information about a bucket called ‘mybucket’
gsutil ls -L -b gs://mybucket/
Upload a single file to the bucket
gsutil cp myfile gs://mybucket/
Upload a directory and its contents to a bucket
gsutil cp -r folder1 gs://code-j5-org/
List contents of a bucket
gsutil ls -r gs://mybucket/
Download a file called ‘testfile.png’ in ‘folder1’
gsutil cp gs://mybucket/folder1/testfile.png
Delete multiple files in a folder
gsutil rm gs://mybucket/folder1/*.png
Delete a folder and all its contents
gsutil rm -r gs://mybucket/folder1
Delete a bucket, if bucket is empty
gsutil rb gs://mybucket
Delete a bucket all all files
gsutil rm -r gs://mybucket
Accessing buckets via HTTPS
asdflkj
curl -X POST --data-binary @[OBJECT_LOCATION] \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "Content-Type: [OBJECT_CONTENT_TYPE]" \ "https://storage.googleapis.com/upload/storage/v1/b/[BUCKET_NAME]/o?uploadType=media&name=[OBJECT_NAME]"
To download files, buckets can be accessed at https://<bucket name>.storage.googleapis.com/path For example,
curl https://mybucket.storage.googleapis.com/folder1/testfile.png
Within GCP for subnets that have “Private google access”, this DNS name will always resolve to 199.36.153.8-11