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);
        }
Example #2
0
        //-------------------------------------------------------------------------------------------------------------------------------
        /// <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);
        }
Example #3
0
        //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);
        }
Example #5
0
        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}";
                    }
                }
            }
        }