睡睡念
幫後端改圖片上傳的架構,直接把GCE(Google Compute Engine)的機器改成用GCS(GoogleCloudStorage),所以要把GCE的圖搬到GCS。
正文
- 首先要用到的是 [[135. gsutil整批複製|關閉ssh連線後,仍可執行程式]] ,不然用gcloud 連線時間過久是會被切斷連線的。
情境 1 整批資料夾
將nfs資料夾裡面的所有檔案/資料夾複製到bucket裡面,
-m 是多工,-r 是複製底下資料夾的檔案
gsutil -m rsync -r nfs gs://systemfile-stage/
ref. gsutil rsync
情境2 ,複製特定資料夾
需要先建立一個文字檔,將資料夾名稱寫入
rsync.txt
20220201
20220301
20220310
while read p;
do
folder=$(echo "$p");
gsutil rsync -r nfs/$p gs://systemfile-stage/$p/
done < rsync.txt
情境3,複製特定圖片
這邊只能根據你的來源隨機應變了,
我的檔案格式為
keepfile.csv
"files/20230217/104abc69-e612-4b6c-abe4-52b91b79562f.jpg","17/2/2023 19:27:46.79"
"files/20230217/7a30d9eb-5e7c-4eb8-93c9-a72e5bd74f78.jpg","17/2/2023 19:28:47.56"
"files/20230217/ea81d738-ff0c-416a-b6d9-3520fda8f0ed.jpg","17/2/2023 19:32:47.44"
"files/20230217/7a7e1c75-4bec-4831-9a58-fa9650a82df1.jpg","17/2/2023 19:33:24.94"
"files/20230217/cf495ecb-71a9-4d46-95f4-b051f260523a.jpg","17/2/2023 19:33:49.4"
"files/20230217/eb05163b-bc0f-4e3b-96d5-82b0bb4f3a8d.jpg","17/2/2023 19:34:41.463"
所以,要改讀csv的格式,然後將路徑與檔案名稱拆開,
最後才複製圖片過去。但這個過成真的久,
如果可以最好是用rsync複製資料夾吧。
$file的變數,拆解出來有" ,所以又用了[[133. shell script字串處理]]的方式,將"刪除。
while IFS="," read -r path date
do
folder=$(echo "$path" | awk -F '/' '{print $2}');
file=$(echo "$path" | awk -F '/' '{print $3}');
gsutil cp -n nfs/$folder/${file%*\"} gs://systemfile-stage/$folder/
done < keepfile-sort.csv
ref.
0 意見:
張貼留言