banner
年糕

年糕日记

此站为备份站点,最新文章请访问 oior.net
telegram
email

自建私有 API 挂载OneDrive

前言#

在使用 Rclone 進行 OneDrive 文件傳輸時,可能會遇到速度非常慢、斷線等一些問題,其根源是觸發了 OneDrive API 的限制,而預設的 Rclone 內建 API 由於非常多人在同時使用,所以這些問題也就愈發明顯。使用自建的私有 API 連接 OneDrive 可以大幅改善這些情況,而且對於三個月的 Of­fice 365 E5 開發者試用版,平時偶爾使用 Rclone 還會有自動續訂的可能性,比起刻意刷 API 的方式更為安全和穩定。此外,自建的 API 還可以給其他的帳號和其他應用使用。

創建 OneDrive API#

獲取 Client ID#

image

  • 名稱隨意,帳戶類型選擇最後一個,重定向 URL 填寫http://localhost

image

  • 創建成功後,你會看到 Client ID(客戶端 ID),複製並保存好。

image

獲取 Client secret#

  • 點擊憑證和密碼,按照圖中序號的順序操作添加密碼。

image

  • 然後你會看到 Client secret(客戶端密碼),複製並保存好。

image

設置 API 權限#

  • 點擊API 權限,按照圖示進行操作,添加Files.ReadFiles.ReadWriteFiles.Read.AllFiles.ReadWrite.Alloffline_accessUser.Read這些權限。

image

  • 最後確認下權限是否添加完整。

image

獲取 token#

  • 在本地電腦上下載 rclone
  • 以 Windows 為例,解壓縮並進入rclone.exe所在文件夾,在資源管理器地址欄輸入cmd,按回車鍵就會在當前路徑打開命令提示符。
  • 替換以下命令中的Client_IDClient_secret並執行。
rclone authorize "onedrive" "Client_ID" "Client_secret"

接下來會彈出瀏覽器,要求你登錄帳號進行授權。授權完後,命令提示符窗口會出現以下信息:

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Paste the following into your remote machine --->
{"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2020-02-22T21:18:39.5036298+08:00"}
<---End paste

{"access_token":"xxxxxxxxxxxxxxxxxx","expiry":"2020-02-22T21:18:39.5036298+08:00"} 整個內容(包含括號)就是 to­ken ,複製並保存好。

其他說明#

私有 API 局限性#

自建私有 API 雖然能改善上傳體驗,但如果使用過於頻繁還是會受到上傳限制。

OneDrive API 限制閾值是多少?#

微軟沒有明確說明 OneDrive API 的限制,以下為官方文件原文:

根據使用情況,我們會對閾值進行微調,以便用戶可以使用最大數量的資源,而不會降低可靠性和性能。

通過查看其他類型的 API 限制說明,可以猜測到的是有總次數和頻率這兩種限制。總次數是指一天內所能調用的次數,而頻率為每分鐘所能調用的次數。一旦達到限制閾值,就會限制文件的上傳。

既然無法從官方文件中獲得準確數值,那麼是否能通過實際測試來獲得這個準確數值呢?答案是否定的。在實際測試中並沒有發現任何規律,所以說這個限制是動態調節的,也符合官方文件的說明。

如何避免 OneDrive API 受限?#

不要在短時間內上傳過多的文件,文件大小無所謂,關鍵在於文件數量。

關於 Office 365 E5 自動續訂#

根據博主幾年的開發者試用版使用經驗來看,只要你使用自建的私有 API 就可能續訂,至於頻率並沒有一個標準,也並不是越多越好。刻意刷 API 可能得不償失,尤其是使用 GitHub Ac­tions ,因為服務器是微軟 Azure 的,那麼多人以相似的方式無意義地刷 API 想要識別是非常容易的。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。