public async Task <string> GetFileLink(int bookId) { var client = new DropboxClient(_applicationConfiguration.DropBoxAccessToken); string remotePath = $"/{bookId}.png"; string rawOption = "raw=1"; string url = string.Empty; string result = string.Empty; try { ListSharedLinksResult links = await client.Sharing.ListSharedLinksAsync(remotePath); url = links.Links.FirstOrDefault().Url; } catch (Exception ex) { SharedLinkMetadata metadata = await client.Sharing.CreateSharedLinkWithSettingsAsync(remotePath); url = metadata.Url; } result = $"{url}&{rawOption}"; return(result); }
//------------------------------------------------------------------------------------------------------------------------------- /// <summary> /// Gets the URL to the shared link created ... /// Dropbox.Api.Sharing.FileAction.ShareLink /// http://dropbox.github.io/dropbox-sdk-dotnet/html/T_Dropbox_Api_Sharing_FileAction_ShareLink.htm /// http://stackoverflow.com/questions/32099136/is-there-a-way-to-check-if-a-file-folder-in-dropbox-has-a-shared-link-without-cr /// </summary> /// <param name="folder"></param> /// <param name="file"></param> /// <returns></returns> public static async Task <string> ShareFile(string folder, string file) { //RequestedVisibility rv = new //SharedLinkSettings sls = new SharedLinkSettings(); //sls.R.LinkPassword = ""; //RequestedVisibility.Public, "TEST"); // Check to see if it exists ListSharedLinksResult lslr = await dbx.Sharing.ListSharedLinksAsync(folder + "/" + file); SharedLinkMetadata slmd = null; if (lslr.Links != null && lslr.Links.Count > 0) { slmd = lslr.Links[0]; } else { // Create it slmd = await dbx.Sharing.CreateSharedLinkWithSettingsAsync(folder + "/" + file); } //SharedLinkMetadata slmd = await dbx.Sharing.CreateSharedLinkWithSettingsAsync(folder + "/" + file); Console.WriteLine("Shared link to " + slmd.Name + " is " + slmd.Url); return(slmd.Url); }
//list shared private async void button15_Click(object sender, EventArgs e) { richTextBox2.Text = ""; sharedLinks = await client.Sharing.ListSharedLinksAsync(); foreach (SharedLinkMetadata q in sharedLinks.Links) { richTextBox2.Text += "Name: " + q.Name + Environment.NewLine + "Path: " + q.PathLower + Environment.NewLine + "Folder/file " + (q.IsFile ? "is file" : q.IsFolder ? "is folder" : ""); } }
public async Task <string> GetSharedLink(string path) { string Result = string.Empty; try { SharedLinkMetadata sharedMeta = await client.Sharing.CreateSharedLinkWithSettingsAsync(path); Result = sharedMeta.Url; } catch (ApiException <Dropbox.Api.Sharing.CreateSharedLinkWithSettingsError> ) { ListSharedLinksResult sharedList = await client.Sharing.ListSharedLinksAsync(path : path); IList <SharedLinkMetadata> asdasd = sharedList.Links; Result = asdasd[asdasd.Count - 1].Url; } return(Result); }
private async void Button1_Click(object sender, EventArgs e) { string accessToken = "Lzk0cOUr-BoAAAAAAABn1QgKontvLa2ma0vtCU24NTo9vEeBTeFSjiROUL5rY_6F"; string appKey = "e7852uopirsqcja"; string appSecret = "dvhf2ijy2z99ckg"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { foreach (string fileName in openFileDialog1.FileNames) { LogMessage(fileName); Dropbox.DropboxClient client = new Dropbox.DropboxClient(appKey, appSecret); if (Path.GetExtension(fileName) == ".mp4") { LogMessage($"Cannot process mp4 file {fileName}"); continue; } string fileNameOnDropbox = Path.GetFileName(fileName); UploadFileRequest request = new UploadFileRequest(fileNameOnDropbox); Image image = Image.FromFile(fileName); using (MemoryStream stream = new MemoryStream()) { image.Save(stream, image.RawFormat); stream.Position = 0; await client.UploadFileAsync(request, stream, accessToken); } using (var apiClient = new Dropbox.Api.DropboxClient(accessToken)) { string fn = $"/{fileNameOnDropbox}"; ListSharedLinksResult sharedLinksResult = await apiClient.Sharing.ListSharedLinksAsync(new ListSharedLinksArg(fn)); string url = string.Empty; if (sharedLinksResult.Links.Count > 0) { url = sharedLinksResult.Links[0].Url; } else { SharedLinkMetadata sharedLinkMetaData = await apiClient.Sharing.CreateSharedLinkWithSettingsAsync(fn); url = sharedLinkMetaData.Url; //DatabaseOperations. } textboxFeedBack.Text += $"Url = {url}"; } } } }