# s3proxy 環境設定備忘 ## Windwos 安裝步驟 * 下載 `s3proxy` 二進位執行檔, 官方的 GitHub 可以找到。 * 新增 s3proxy.conf 內容如下: ``` s3proxy.endpoint=http://0.0.0.0:8080 s3proxy.authorization=aws-v2-or-v4 s3proxy.identity=Z12350s8YcSuxS8ChWasdasd s3proxy.credential=yZm43567hBd5ZBB8uXLjDExxasd jclouds.provider=filesystem jclouds.filesystem.basedir=data ``` * 下載 [NSSM](https://nssm.cc/download),解壓後提取 win64 下的 `nssm.exe` 出來用就可以了。 * 建立服務安裝目錄,假設是 `D:\S3Proxy` ,把 `s3proxy` 、 `nssm.exe` `s3proxy.conf` 丟進目錄。 * 已系統管理員身份開啟 powershell 進入 `D:\S3Proxy` 目錄。 * 進行服務安裝 ``` .\nssm.exe install s3proxy "C:\Program Files\Microsoft\jdk-17.0.4.101-hotspot\bin\java.exe" -jar s3proxy --properties s3proxy.conf .\nssm.exe set s3proxy AppDirectory $PWD .\nssm.exe set s3proxy Description S3雲端模擬 .\nssm.exe set s3proxy DisplayName S3雲端模擬 ``` 那個 java.exe 官方文件是說要 11 以上,實際路徑看佈署環境安裝的 java 版本而定,我這邊使用的是 Microsoft 打包的 OpenJDK 17 * 服務操作管理 ``` 啟動 .\nssm.exe start s3proxy 停止 .\nssm.exe stop s3proxy 移除 .\nssm.exe remove s3proxy ``` ## s3proxy.conf 設定說明 * `s3proxy.endpoint` 設定要 listen 的 port 跟 IP * `s3proxy.authorization` 設定認證模式 * `s3proxy.identity` 設定存取的ID * `s3proxy.credential` 設定存取的token * `jclouds.provider` 設定使用本地的 filesystem * `jclouds.filesystem.basedir` 設定基礎目錄這邊會相對於 AppDirectory , 以上面的假設來說就是 D:\S3Proxy\data ## Linux Docker Compose 佈署 * 新增 'docker-compose.yml' 內容如下 ``` version: '3.8' services: s3: image: andrewgaul/s3proxy:latest environment: S3PROXY_IDENTITY: "ZVVP0s8YcSuxS8ChWOHN" S3PROXY_CREDENTIAL: "yZmuLhBd5ZBB8uXLjDEY" ports: - "8080:80" restart: always volumes: - ./data:/data ``` * `docker compose up -d` ## 目前已測試環境 * `Windwos 11` ok * `Dokcer on Linux` ok ## 補充說明: * 在 data 下面第一層資料夾可以視為 bucket (這邊名稱只能小寫英數-等..) * 在 windwos 假設在某一個 bucket 新增 demo 資料夾,會多出現一個 demo\,目前測試只是呈現的時候多一個,不影響存取 * s3proxy 相較於 minio 相對輕量,也沒辦法做太複雜的控管。不過好處是當 provider 使用 filesystem 模式時,最後存進去的檔案跟平常存放的模式沒兩樣。 * 專案初期規模小的時候先用 s3proxy 模擬 S3 API 操作,未來系統成長 另外獨立建置專屬的 S3 服務,或直接租賃雲端 S3 服務,程式面都不會受到影響,只是改變 調整連線 S3 API 的位置而已。 * 現在不少 NAS 產品也都有提供 S3 API 的方式存取貯存空間。 * 至於雲端服務商雖然一開始是 AWS 提出的,但現在各大雲端商應該都有提供。 ## 網路參考資料 * [s3proxy官方網站](https://github.com/gaul/s3proxy) * [s3browser S3瀏覽工具](https://s3browser.com/download.aspx) * [為什麼雲端儲存推薦S3?用S3打造企業的資料大倉庫](https://www.easpnet.com/blog/gws-s3/) * [大型分佈式存儲方案MinIO介紹](https://developer.aliyun.com/article/994497)