You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.

Forum Discussion

sbrownnw's avatar
sbrownnw
Explorer | Level 4
2 years ago

Uploading an update to a file with WriteMode.AsOverwrite mode with Id or Path fails

Hello.  I am using the .Net Dropbox.Api (6.37.0) with the following code sample:

 

 

using Dropbox.Api;
using Dropbox.Api.Files;
using System.Text;

namespace Dropbox
{
   internal class Program
   {
      static void Main(string[] args)
      {
         DropboxClientConfig config = new DropboxClientConfig
         {
            MaxRetriesOnError = 0
         };
         DropboxClient dropboxClient = new DropboxClient(AccessToken.ValidToken, config);

         Stream stream = new MemoryStream(Encoding.UTF8.GetBytes($"this is a test"));
         UploadArg uploadArg = new UploadArg($"/foo{Guid.NewGuid()}.txt"); // upload new file to root
         var result = dropboxClient.Files.UploadAsync(uploadArg, stream).Result;

         stream = new MemoryStream(Encoding.UTF8.GetBytes($"this is an updated test"));
         result = dropboxClient.Files.UploadAsync(result.Id, mode: new WriteMode().AsOverwrite, body: stream).Result;
      }
   }
}

 

 

 When running, the second UploadAsync throws an path/conflict/file exception.  This also repros if I change the first parameter in the second UploadAsync to result.PathLower.

 

Why is this?

  • Please use Dropbox.Api.Files.WriteMode.Overwrite.Instance to set the overwrite mode (instead of AsOverwrite).

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    Please use Dropbox.Api.Files.WriteMode.Overwrite.Instance to set the overwrite mode (instead of AsOverwrite).

    • sbrownnw's avatar
      sbrownnw
      Explorer | Level 4

      Ok.  Strange, but ok.

       

      I tried the similar code and it does not compile with:     mode: WriteMode.Update.Instance
      And it throws the same exception with:     mode: new WriteMode().Update

       

      What do I use for Updating a file?

      • Greg-DB's avatar
        Greg-DB
        Icon for Dropbox Staff rankDropbox Staff

        For the update write mode, you need to supply the rev value that you are intending to update, so you would make that like: new WriteMode.Update(result.Rev)

About Discuss Dropbox Developer & API

Node avatar for Discuss Dropbox Developer & API

Make connections with other developers

797 PostsLatest Activity: 2 days ago
199 Following

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!