Google Storage 介紹
因緣際會之下開始使用 Google Storage 的服務,所以想說要用一篇文章記錄,由於 Google Cloud 的服務五花八門非常多樣化,所以這邊主要會專注在介紹 Google Storage,包含安裝與一些簡單的操作。
參考連結
首先是要安裝 Google cloud SDK (gcloud):- 安裝在 Mac 環境:
wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-314.0.0-darwin-x86_64.tar.gz
tar -zxvf google-cloud-sdk-314.0.0-darwin-x86_64.tar.gz
./google-cloud-sdk/install.sh
- 安裝在 Ubuntu 環境:
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
sudo apt-get install apt-transport-https ca-certificates gnupg
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - && apt-get update -y && apt-get install google-cloud-sdk -y
初始化與帳號登入
- Mac 初始化
./google-cloud-sdk/bin/gcloud init
- Ubuntu 初始化
gcloud init
備註:安裝完之後可以使用以下要介紹的 gsutil
Gsutil
Gsutil 讓使用者可以直接對雲端的 Google Storage Bucket 做存取,是一個很實用的雲端存儲,安裝的方式如下,由於 Gsutil 是屬於 Google cloud 的其中一個服務,所以安裝完 GCloud 就會有 Gsutil 在其中了!以下列出幾個 gsutil 常用的指令:
gsutil mv gs://<bucket_name>
gsutil cp gs://<bucket_name>
gsutil du -s gs://<bucket_name>
gsutil ls gs://gnomad-public/release
gs://gnomad-public/release/
gs://gnomad-public/release/2.0.1/
gs://gnomad-public/release/2.0.2/
gs://gnomad-public/release/2.1.1/
gs://gnomad-public/release/2.1/
gs://gnomad-public/release/3.0.1/
gs://gnomad-public/release/3.0/
如果要下載整個 gsbucket 上的資料夾的話,可以利用以下指令將 google bucket 的檔案下載到本地。
gsutil -m cp -R gs://<bucket_name> .
-m 是啟動多執行緒下載的參數。
參考連結
如何造訪 Requestor Pays ?一般在針對公開的 google bucket 執行以上提到的 gsutil 指令的時候,基本上都沒有太多問題,但是有一些 google bucket 並不是免費可以取得的,此時在執行 gsutil 的時候就會得到以下的錯誤訊息:
gsutil ls gs://hail-datasets-us/
BadRequestException: 400 Bucket is requester pays bucket but no user project provided.
主要的原因是因為 gs://hail-datasets-us 是一個使用者付費的雲端上空間,所以此時要提供 google project 帳號 ID 才可以成功對資料做存儲,可以利用以下的方式做進一步的資料處理:
gsutil -u PROJECT_ID mv gs://bucket-name
gsutil -u PROJECT_ID cp gs://bucket-name
gsutil -u PROJECT_ID du -s gs://bucket-name
gsutil -u PROJECT_ID ls gs://hail-datasets-us/
gs://hail-datasets-us/1000_Genomes_autosomes.phase_3.GRCh37.mt/
gs://hail-datasets-us/1000_Genomes_autosomes.phase_3.GRCh38.mt/
gs://hail-datasets-us/1000_Genomes_chrMT.phase_3.GRCh37.mt/
gs://hail-datasets-us/1000_Genomes_chrX.phase_3.GRCh37.mt/
gs://hail-datasets-us/1000_Genomes_chrX.phase_3.GRCh38.mt/
gs://hail-datasets-us/1000_Genomes_chrY.phase_3.GRCh37.mt/
gs://hail-datasets-us/1000_Genomes_chrY.phase_3.GRCh38.mt/
gs://hail-datasets-us/1000_Genomes_phase3_European_autosomes_maf_gt_001.bm/
gs://hail-datasets-us/1000_Genomes_phase3_European_autosomes_maf_gt_001.metadata.he/
gs://hail-datasets-us/1000_Genomes_phase3_European_autosomes_maf_gt_001_standardized.bm/
gs://hail-datasets-us/1000_Genomes_phase3_European_autosomes_maf_gt_001_standardized.metadata.he/
gs://hail-datasets-us/1000_Genomes_phase3_sample_relationships.ht/
gs://hail-datasets-us/1000_Genomes_phase3_samples.ht/
gs://hail-datasets-us/GTEx_RNA_seq_gene_TPMs.v7.GRCh37.mt/
gs://hail-datasets-us/GTEx_RNA_seq_gene_read_counts.v7.GRCh37.mt/
gs://hail-datasets-us/GTEx_RNA_seq_junction_read_counts.v7.GRCh37.mt/
gs://hail-datasets-us/LDSC_baselineLD_v2.2_ld_scores.GRCh37.ht/
gs://hail-datasets-us/LDSC_baselineLD_v2.2_ld_scores.GRCh37.mt/
gs://hail-datasets-us/LDSC_baseline_v1.1_ld_scores.GRCh37.mt/
gs://hail-datasets-us/UK_Biobank_Rapid_GWAS_both_sexes.v2.GRCh37.mt/
gs://hail-datasets-us/UK_Biobank_Rapid_GWAS_female.v2.GRCh37.mt/
gs://hail-datasets-us/UK_Biobank_Rapid_GWAS_male.v2.GRCh37.mt/
gs://hail-datasets-us/annotations/