分享程式代碼相關筆記
目前文章總數:157 篇
最後更新:2024年 12月 07日
(右上角Sign In)
左邊 My apps -> 右上Create app 號
※(以下皆可依照需求變更調整)
1. Choose an API -> 這邊選擇個人用戶 (如圖黑框)
2. Choose the type of access you need -> Full Dropbox (如圖黑框,這裡表示全部資料夾、檔案皆可存取)
3. Name your App -> 命名 (有規範,且不可重複,故不可以用圖片中的名稱)
4. 選擇我同意 (I agree …….) ,然後Create app
黑框 : API Explorer -> DropBox 提供API 叫用方法
黃框 : API 叫用文件,依照語言的不同有各自的Libary叫用方式
根目錄 : 2個檔案 + 1個資料夾
Image資料夾 : 1個檔案
選擇list_folder (取得DropBox 資料夾資訊) -> 輸入自己的Access Token -> Submit Call (執行Post)
這章節介紹使用方法,下一章節進入實作擷取下載檔案的方法,由上至下:
folder 資料夾,路徑為 /image
file 檔案,路徑為/dropbox paper 新手指南.url
file 檔案,路徑為/dropbox paper 新手指年.pdf
範例用WinForm
代碼如下:
/// <summary>
/// 訪問所有資料的DropBox Token
/// </summary>
private string AccessToken = "4sY3_IJMOQAASDASDSADABDASDSg4FDhDgWCYu-qdsdF5uzEZcWupHcQmMvjNjnPdgJW";
代碼如下:
/// <summary>
/// 取得DropBox API 資料夾的Method
/// </summary>
/// <returns></returns>
async Task ListRootFolder()
{
using (var dbx = new DropboxClient(this.AccessToken))
{
#region //位置 => 根目錄
//根目錄的folder(資料夾)
var list = await dbx.Files.ListFolderAsync(string.Empty, recursive: false);// Result;
foreach (var item in list.Entries.Where(i => i.IsFolder))
{
Console.WriteLine("D {0}/", item.Name);
}
//位置 => 根目錄
//根目錄的所有檔案
foreach (var item in list.Entries.Where(i => i.IsFile))
{
Console.WriteLine("F{0,8} {1}", item.AsFile.Size, item.Name);
}
#endregion
#region //位置 => 根目錄/image
// 根目錄/image 的所有檔案
var list2 = await dbx.Files.ListFolderAsync("/image/");
foreach (var item in list.Entries.Where(i => i.IsFile))
{
Console.WriteLine("F{0,8} {1}", item.AsFile.Size, item.Name);
}
#endregion
}
}
※偷懶XD,建議實際開發依照需求調整:
private void Form1_Load(object sender, EventArgs e)
{
//呼叫DropBox api
var task = Task.Run((Func<Task>)ListRootFolder);
task.Wait();
}
我們已經可以透過程式碼叫用DropBox API 取得雲端硬碟的資料位置:
※不可用Download 這會取得下載資訊,當初卡在這邊2~3小時,慢慢看文件才確定這邊的用法
輸入 /image/docker.jpg 取得檔案連結,DropBox 有安全性限制
隔一段時間後下面的連結會失效,必須重新叫用API產生連結位置
※path 可以透過第三章節取得目錄、檔案位置進行組合。
https://dl.dropboxusercontent.com/apitl/1/AABY08h5aHOFbqCB14CN5R8FicM2952Hb9kq96ckibgKWjR_bkHWasKN7eYj2BS1zMVH7nzmgQb3cyEnLL3JzyZtLOcn-gmLCy4p347t5thUzWMIvFEhSe9lf-l2MqeG3m0KF15XYv-fsHcKdnGvWrvuOdZuRyQN8QkzD6zMaJOCSgOAn3zt8cdQghEcAKyOV82K8VGWEjkJTn-xx2VNwhZoRdkXUjxg378jtQh8IER-Avj_CH-xBDTbhu7XSQ_MwCWG5v80spzGJ03Jb5FMlM_L
程式碼中我們增加mathod
/// <summary>
/// 呼叫DorpBox Image資料夾底下的圖片
/// </summary>
/// <returns></returns>
async Task Download(string path)
{
using (var dbx = new DropboxClient(this.AccessToken))
{
try
{
var result = await dbx.Files.GetTemporaryLinkAsync(path);
Console.Write(string.Format("download link : {0}", result.Link));
}
catch (Exception ex)
{
}
}
}
取得檔案下載位置