https://avatars.githubusercontent.com/u/6058558

程式狂想筆記

一分鐘使用 Docker 架設 Samba 區網檔案分享

簡介 Samba 讓 Linux 與 Windows 系統之間能夠輕鬆共享檔案與印表機。透過 Docker 容器化方式部署 Samba,我們可以在短短一分鐘內完成設定,無需複雜的配置步驟。 快速安裝 Warning 您組織的安全性原則封鎖了未經驗證的訪客存取,所以您無法存取此共用資料夾。 在 Windows 10 或 11 遇到可以參考的這篇文章。 (23) windows10透過網路分享的共用資料夾常因安全性的問題會有沒辦法連線的問題,無法連線到公司內的共用資料夾,顯示的錯誤時 - YouTube 沒有騙人,一分鐘設定完成。以下是設定公開資料夾(不需要帳號密碼)的指令: 1 2 3 4 5 6 7 docker run -it --name samba \ -p 139:139 \ -p 445:445 \ -v /home/pi/samba:/mount \ -d dperson/samba -p \ -u "publicUser;password" \ # 因為 Windows 安全性關係,建議設定一組共用帳號 -s "public;/mount;yes;no;yes" 參數說明 Docker Samba 容器的主要參數: -p 139:139 -p 445:445:開放 Samba 服務所需的標準連接埠 -v /home/pi/samba:/mount:將主機上的 /home/pi/samba 資料夾掛載到容器的 /mount 目錄 -p:設定 Samba 使用密碼功能 -s:指定共享資料夾設定,格式為 -s "<名稱;路徑;可瀏覽;唯讀;訪客許可;使用者;管理員;寫入清單;註解>" 設定公開與私人資料夾 如果要同時設定公開和私人資料夾,可以使用以下指令:

如何避免程式組 URL 出錯

前正子專案因為設定檔有人網址會多 / 導致程式一些狀況,公司有人有特別寫組語法方法,這邊我思考正常內建方法可不可以解決這個問題,怎麼沒有人寫好 Library 分享給別人使用?探討有什麼更好方式去解這個問題。 心智圖 mindmap (程式組 Url 方法) 操作 Url 方法 .Net UriBuilder 物件 Java Uri 物件 JavaScript URL 物件 設定 QueryString 方法 .Net NameValueCollection Java MultiValuedMap 非原生 JavaScript URLSearchParams .Net 實作方法 使用 UriBuilder UriBuilder 是一個用於建立和操作 URI 的類別,適用於需要動態生成或修改 URI 的場景。它的用途包括構建 API 請求、處理用戶輸入的 URL、以及在應用程序中動態生成鏈接。相較於單純使用字串來紀錄 URI,它有以下的優點: 安全性:UriBuilder 會自動處理 URI 中的特殊字元和編碼問題,避免了手動操作可能產生的錯誤。 1 2 3 4 5 6 7 8 9 UriBuilder uriBuilder = new UriBuilder { Scheme = "https", Host = "example.

Playwright 程式碼執行時發生記憶體不足錯誤

最近 .Net 排成程式發生 OOM,奇怪我該關閉程式都有做,但我發現我少一個變數少做 using,所以造成問題。 觀察 我發現有多個子程序沒有關閉,我們從docker top {container_id}可以觀察子程序。忘記這個指令也可以從top、ps aux去做觀察。因為我這個排程每 15 分鐘會跑一次,所以放個3天就會發生。我們可以看到cli.js沒有關閉。 1 2 3 4 5 docker top webcrawlerapi-webcrawlerapi-1 UID PID PPID C STIME TTY TIME CMD root 137707 137686 7 21:30 ? 00:00:04 dotnet WebCrawlerApi.dll root 137757 137707 1 21:30 ? 00:00:01 /app/out/.playwright/node/linux-x64/node /app/out/.playwright/package/cli.js run-driver root 137832 137707 2 21:30 ? 00:00:01 /app/out/.playwright/node/linux-x64/node /app/out/.playwright/package/cli.js run-driver 這裡搜尋到很多程序,我懷疑這些是不是殭屍程式,這邊 Google 找到 Docker 子程序會有殭屍程式問題,但最後跟那個沒有關係。 我的程式如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 _logger.

解決 Read-only file system 問題與系統掛載錯誤

最近遇到了一些系統問題。當我嘗試掛載 /dev/sdc1 (100GB) 到根目錄時,發生了一些問題,系統顯示為只讀文件系統。 Read-only file system 發生連串問題 Read-only file system 問題 當嘗試創建文件時,系統顯示為只讀文件系統: 1 2 user:~$ touch test touch: cannot touch 'test': Read-only file system 解決方法 在網路上找到解決方法,可以使用以下指令重新掛載根目錄為可讀寫模式: 1 sudo mount -o remount,rw / DNS 問題 在嘗試 ping Google 或進行 git pull 操作時,出現 DNS 錯誤: 1 2 3 4 5 6 7 8 9 ping google.com # ping: google.com: Temporary failure in name resolution git pull # ssh: Could not resolve hostname github.

如何尋找 TLS 中繼憑證和驗證憑證

最近在專案進行中,我發現 Ubuntu 上的 Flutter 嵌入式網頁中,發現空白頁面。經過檢查,發現是 nginx 沒有設定中繼憑證的問題。由於明天要進行 DEMO,而 MIS 可能無法聯繫到,我需要快速找到中繼憑證。我該怎麼做呢?第一次找到這個問題後,發現有好用的網站可以快速產生中繼憑證,這裡紀錄一下。

使用 .NET 實作 Azure Storage SAS 上傳檔案起手勢

這邊不詳細介紹什麼是 Azure Storage,這裡簡單介紹一下其組成部分,包括 storage accountContainerblob,如下圖所示。

https://user-images.githubusercontent.com/6058558/234599213-21ae8221-bd83-4287-806e-ed464fa61fba.png

詳細資訊可以參考Blob (物件) 儲存體簡介 - Azure Storage | Microsoft Learn

由於專案時間緊迫,我只拿到了 Azure Storage 的 ConnectionString,需要在短時間內完成上傳功能。以下是使用 .NET 實作 Azure Storage SAS 上傳檔案的步驟。