★★

在 Mac 命令列使用 Github 的 Token 執行 Git Push

以前有寫過一篇「在 Xcode 操作 Git」,為什麼又要寫這篇在命令列的 push 呢?

因為今天用 Xcode v13.3 提交雖然有成功,但推送卻失敗,得到如下訊息。

 

image

 

在 stackoverflow 有看到有人也是今天提問,但還沒有看到回答。

 

https://stackoverflow.com/questions/71581440/q-an-unknown-error-occurred-user-rejected-certificate-for-github-com-17-on

 

所以決定先在命令列推送。

 

重要度:
文章分類:
電腦標籤:

在 C# 解壓縮整個檔案(可覆寫舊檔)

最近在用 C# 寫程式,處理到解壓縮的部份,雖然它有很方便的方法

 

ZipFile.ExtractToDirectory(壓縮檔, 目的目錄);

 

不過實測後,發現一個問題,若目的已有相同的檔案,則會産生錯誤,所以要自行解決這個問題。

 

我原本想過三個方法。

 

第一個是先解壓縮在其它目錄,再全部移到指定的目錄,但缺點是可能會佔用太多空間。如果原本的檔案就很大,要解開的檔案也很大,硬碟空間不夠的情況,解壓縮就會失敗,所以這個方法就先放棄了。

 

第二個方去是先逐一檢查檔案是否存在,存在就先刪除。如此一來,先把舊檔案刪掉,空間就會多一點,比較不擔心空間不夠的問題,最後再用 ZipFile.ExtractToDirectory 解壓縮至指定目錄。

 

第三個方法同上,只是突然想到,乾脆在檢查是否存在之後,就直接解壓縮該檔案,不用等到最後再全部解壓縮。

 

重要度:
文章分類:

使用 SSH 和金鑰登入 cPanel 主機

這篇是要介紹使用 SSH 和金鑰登入 cPanel 的主機,我是以 Buluhost 和 GreenGeeks 主機為例。不過有些主機商沒有提供 SSH 的功能,例如 Sugarhosts,我有幾個站放在那邊,它的最大的好處是可以用中文溝通,可惜 SSH 不支援。

 

底下是記錄操作過程。

 

要求主機商啟用 SSH

 

有網友說 Bulehost 預設 SSH 是啟用的,好像也看過官網如此提過。不過我在測試時,看到這個訊息:

 

Shell access is not enabled on your account!

If you need shell access please contact support.

 

所以就線上請 Bulehost 幫我啟用,幸好只用簡單的英文就完成任務,對方立刻就幫忙啟用了。

 

至於 GreenGeeks 則是在 Support 網頁按下 Open new Ticket,簡單寫著我需要 SSH 功能,對方也是很快就來信說已經啟用了。

 

查詢主機 IP、網址和登入帳號

 

在 cPanel 界面中,可以找到主機的 IP,也可以看到用戶名和網域,下圖紅色的文字是被我修改過的,看的出來那是不合理的 IP。 :)

 

image

 

重要度:
文章分類:

C# 使用 HttpClient 非同步下載檔案

因為所寫的 C# 程式需要由網路下載大的檔案,但官方文件所寫的內容不夠多,所以花了點時間,研究了 HttpClient 非同步下載,並且記錄了一些資料,以供自己未來複習及提供有需要的人參考。

 

WebClient vs HttpClient

 

在微軟官方文件中,一開始有找到了 WebClient 和 HttpClient 二種類別,結果在 WebClient 的官方文件中,看到這一段:

 

 

我們不建議您將類別用於 WebClient 新的開發。 請改用 System.Net.Http.HttpClient 類別。
 

 

所以就放棄研究 WebClient,直攻 HttpClient 了。

 

HttpClient 及注意事項

 

HttpClient 雖然比 WebClient 好用,但有一些事要注意。

 

首先是不要大量使用新建立的 HttpClient,底下是官方文件的說明:

 

 

HttpClient 的目的是要具現化一次,並在應用程式的整個生命週期中重複使用。具現化每個要求的 HttpClient 類別,將會耗盡繁重負載下可用的通訊端數目。這會導致 >socketexception 錯誤。以下是正確使用 HttpClient 的範例。
 

 

 

public class GoodController : ApiController

{

    private static readonly HttpClient HttpClient;

 

    static GoodController()

    {

        HttpClient = new HttpClient();

    }

}

 

不過,在實測中,最多同時只能開啟二個連結。

 

查了不少資料,才知道有個變數 ServicePointManager.DefaultConnectionLimit,官方說明

 

 

ServicePoint 物件所允許的同時連線最大數。 ASP.NET 裝載的應用程式預設的連線限制為10,其他則為2。

 

 

所以若要多開啟幾個連結,不知如何做才好?目前我只找到二個方法:

 

1. 增加 ServicePointManager.DefaultConnectionLimit

2. HttpClient 每次都建立新物件,就沒這個問題了。

 

 

在網路上也查詢了其它文章,有人提到若用 static 的方式來執行 HttpClient ,也會有一些限制,例如長期連線時,可能因為網路上的 DNS 更新後,HttpClient 沒有更新解析 DNS,就會有問題。

 

因此有人介紹更好用的 HttpClientFactory,不過官方文件我只有查到 IHttpClientFactory,而且看起來有點複雜,反正我目前的程式不會用到大量的連線,也不會需要長時間使用,不用擔心 DNS 更新的問題,所以決定還是使用 HttpClient 即可。

 

另外,官方還有這個建議:

 

 

想要下載大量資料 (50 mb 或以上的) ,則應用程式應該串流這些下載,而不使用預設的緩衝。如果使用預設緩衝,用戶端記憶體使用量將會變得非常大,可能會大幅降低效能。

 

 

這也是我需要測試的,因為我需要下載的檔案會有超過 GB 的大小。

 

重要度:
文章分類:
電腦標籤:

測試下載 Yinshun200

下載「導師筆記」

 

 

重要度:
文章分類:

安裝 Drupal 9

 

安裝環境

 

XAMPP 免裝版,內含:

 

  • PHP:8.0.9
  • Web:Apache/2.4.48 (Win64) OpenSSL/1.1.1k
  • Database:10.4.20-MariaDB
 

Drupal:9.3.0

 

下載檔案

 

下載 Drupal 9 最新版,解壓縮至指定目錄,例如:

 

/htdocs/drupal9

 

底下是根據 Drupal 目錄中的 INSTALL.txt 的說明安裝的。

 

安裝 Composer

 

參考此說明

 

https://getcomposer.org/doc/00-intro.md#globally

 

我是採用 Windows 版的安裝,下載並執行 Composer-Setup.exe

 

重要度:
文章分類:
電腦標籤:

C# 使用 Skin 套件讓程式更美觀 (下)

 

DarkUI

 

DarkUI 是參考此頁

 

https://ourcodeworld.com/articles/read/517/how-to-use-a-darkui-dark-user-interface-in-winforms-c-sharp

 

首先用 git clone 這個專案

 

https://github.com/RobinPerris/DarkUI.git

 

用 Visual Studio 開啟它,並且 build 它。會在 bin/Debug 中產生新的 DarkUI.dll

 

再開新專案,將此 dll 的元件加入工具箱中,會看到一堆暗色系的元件。

 

image

 

重要度:
文章分類:

C# 使用 Skin 套件讓程式更美觀 (中)

Material Skin

 

Material Skin 有不少人推薦,安裝方法同上,先在 NuGet 套件中搜尋 material skin,底下可以看到有不少種,應該是挑比較新的版本吧?我多挑幾個來試試。

 

image

 

在測試時有好幾個是無法順利安裝的,例如:

 

image

 

再把安裝好的套件一一加入工具箱中。

 

image

 

全部一一安裝時,發現會有衝突,底下改試著逐一安裝。

 

重要度:
文章分類:

C# 使用 Skin 套件讓程式更美觀 (上)

Iris Skin

 

首先建立一個專案,放上一堆元件。

 

image

 

在專案「參考」按右鍵,選取「管理 NuGet 套件」。

 

image

 

在 NuGet 套件管理員瀏覽頁上方的搜尋框中輸入「irisskin」,會找到 HiNetCloud.IrisSkin4,選擇它並在右方選擇安裝,就會安裝到專案中。

 

重要度:
文章分類:

Google雲端硬碟更改檔名變成上傳的陷阱

最近在 Google 串流版的雲端硬碟進行更名時,發現一個奇怪的現象,寫出來給大家參考,免得日後踩到同樣的地雷 。 :)

假設我有五個檔案。

 

121-0001.jpg

121-0002.jpg

121-0003.jpg

121-0004.jpg

121-0005.jpg

 

我想把它們改名,也就是把最後一個數字減一,理論上我只要寫這個批次檔就可以了,注意順序不可以錯誤。

 

ren 121-0001.jpg 121-0000.jpg

ren 121-0002.jpg 121-0001.jpg

ren 121-0003.jpg 121-0002.jpg

ren 121-0004.jpg 121-0003.jpg

ren 121-0005.jpg 121-0004.jpg

 

不過在實際執行後,檔案的確立刻改好了,但發現雲端硬碟程式在大量工作,一查才發現它在上傳檔案。

 

image

 

重要度:
文章分類:

頁面

借我放一下廣告
訂閱 ★★