Backup mongodb to GCP storage with crontab
情況是要把原本寫入 local mongodb 的 usage log dump 出 csv 檔案(並且從mongodb內刪除),並且把較舊的 csv 檔案移去 GCP storage。
情況是要把原本寫入 local mongodb 的 usage log dump 出 csv 檔案(並且從mongodb內刪除),並且把較舊的 csv 檔案移去 GCP storage。
遇到的情況是要在 ubuntu 機器上 mount 非 public access 的 gcp storage bucket,然後要給 php web api 做讀寫。
雖然最後算算價格跟考慮使用情境應該不會採用這樣的 solution,但還是來記錄一下。
主要是使用 gcsfuse 這個工具,還有就是使用 Google\Cloud\Storage\StorageClient 這個套件
其實還蠻簡單的,比較麻煩的反而是在產生 access key 這個部份,只能說 alibaba 的 document 有點難找 安裝與簡單的範例 安裝 sdk 可以直接到 https://github.com/aliyun/aliyun-oss-php-sdk下載。我自己是用 composer 裝完,可以在工作目錄的 vendor/aliyuncs/oss-sdk-php/ 底下找到 autoload.php 加到 php file 當中。開始使用的時候基本上只要 use OSSOssClient 與 OSSCoreOssException 這兩個 class 就差不多通吃了,下面這段是從 samples/ 目錄裡面的範例做修改的,可以作為參考。 <?php require_once ‘../vendor/aliyuncs/oss-sdk-php/autoload.php’; use OSSOssClient; use OSSCoreOssException; $accessKeyId = “YOUR_ACCESS_KEY_ID”; $accessKeySecret = “YOUR_ACCESS_KEY_SECRET”; $endpoint = “oss-cn-hongkong.aliyuncs.com”; $bucket = “YOUR_BUCKET_NAME”; try { /* build connection */ […]
Alibaba cloud (aliyun) 上頭也有類似 gcp 的儲存服務,叫做 Object Storage Service (OSS),對於不常變更的檔案儲存算是便宜的選擇。
其實會寫這篇的關係是因為 ownCloud 的 app 設定有點龜毛 =__=