An actually USEFUL guide on uploading large files via API
Hello fellow Dropsketeers!
So after writing what I hope is viewed as a SCATHINGindictment of Dropbox's awful CLI support and API functionality/documentation, I decided that, while it was a somewhat satisfying way to blow off steam, it doesn't really help anyone in the same predicament (other than letting them know they're not insane or stupid, it's just terribly implemented and poorly documented). It occurred to me that some of the pageviews on my rant were probably from people Googling terms in order to try to find something useful that could actually help them figure this out. That being the case, I decided to channel my frustration into a more useful outlet by writing this simple guide to uploading large files from CLI via the API.
This guide makes a few assumptions: 1) You have a dropbox account (or a free trial or something - access to dropbox, basically). 2) You are working from Ubuntu or some other linux distro's CLI, not a GUI, and know how to do simple things like run cURL and read output from "ls". 3) You have a Dropbox developer account (if not, go here - they're free for Dropbox users and easy to set up). 4) You have created your first "App" in the developer section (if not, click "App console" in the upper right, then "Create app" and follow this guide).
For the purposes of this guide, I am using cURL to illustrate how to upload the files, however if you're working with files a few gigs or larger, you're going to need to script this, else you'll still spend the better part of an afternoon getting your content uploaded due to the fact that you have to upload things in 150MB chunks, and that chunking is done manually, by you, then POSTed one at a time, by you. In fairness, it's possible to run concurrent uploads, but I'm not ready to further abuse myself trying to translate their documentation into a useful format again...perhaps next time I'm feeling depressed and want to self-harm (it's a joke, people, relax - harming yourself is bad and if you're doing it or thinking about it, talk to a mental health professional).
Disclaimer: This guide is provided as-is and might be a little quick and dirty, as I'm also watching Squid Game while writing it (and that show just DEMANDS your attention, especially with original audio and subtitles), but I'll include CLI examples and output to illustrate exactly what I did in order to upload my example file, a 640MB gzipped archive of pictures (sexy pictures ☞-_^☞). I am not professionally affiliated with Dropbox in any way, other than as a customer bound to them by my annual subscription period (and, increasingly, the white hot fire of my rage).
Okay, so the first thing we need to do here is choose a file and prepare it for upload. Let's take a look at my example file, which lives in "~/move/camera/" (I'm already in ~/, so I'm just using relative paths):
This is clearly over the 150MB limit set for "/upload", hence the need to use "/upload_session/" (Fun fact: If you try to upload something over the limit, you don't get an error message, instead you get a 4xx HTML response page, with no explanation of what happened or why. Helpful!)
Let's split this guy into chunks - in my case, I want to dump them into a directory in order to keep things neat, so I'll create a dir and output there. Additionally, "split" labels stuff with an alpha format by default (aa, ab, ac), but I like numbers better, so we'll pass the -d option to get that output (something something "giving it the D", laughter):
$ mkdir move/camera/camera6.tar.gz.d/ $ split -db 150000000 move/camera/camera6.tar.gz move/camera/camera6.tar.gz.d/camera6.tar.gz_ $ ls -la move/camera/camera6.tar.gz.d/ total 655268 drwxrwxr-x 2 theflodge theflodge 4096 Nov 7 08:41 . drwxrwxr-x 3 theflodge theflodge 16384 Nov 7 08:41 .. -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_00 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_01 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_02 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_03 -rw-rw-r-- 1 theflodge theflodge 70934575 Nov 7 08:41 camera6.tar.gz_04
If you're not familiar with the split command, what I've done here, besides using -d in order to get numeric output, is declared the size in bytes of the chunks I want with -b 150000000, the file I want to chop up, move/camera/camera6.tar.gz, and the destination and naming convention for the chunks, move/camera/camera6.tar.gz.d/camera6.tar.gz_. So:
$ split -<options> <filename> <destination> -<options> : "-db 150000000" = d for numeric output, b for "this many bytes", 150000000 because we want 150MB (well, technically 144MB, but I don't want to get into all that). <filename> : "move/camera/camera6.tar.gz" = my sweet, innocent example file, about to be rent asunder. <destination> : "move/camera/camera6.tar.gz.d/camera6.tar.gz_" = the folder I made plus the naming convention I want to use - if you put nothing here, you'll get "x00, x01" etc, which is fine, I just prefer to give everything descriptive names in case I forget due to the head trauma from repeatedly smashing my face into the keys in frustration.
If everything went well, there should be a directory full of chunks now. We can see in my output that there are five happy little chunks waiting to be POSTed, with the last little runty chunk being the leftover bytes that don't add up to 150MB (poor lil' guy).
----- 2) Generate a token -----
At the top of this guide, I mentioned that I'm assuming you're both a customer and have signed up for a free developer account, and that you've successfully created your first App (although I provided some links to do those things if you haven't already). You'll need an App from this point forward.
Go to your App (easiest way is just to go to the main developer page, then click "App console" in the upper right, followed by your App). Right here on the "Settings" page, there's a section to generate an OAuth 2 token - but don't do that yet. First, we need to change some permissions, and generated tokens are linked to permissions, so if you generate one now, then change the permissions, you'll need to generate a new one or it won't use the new permissions.
Go to the "Permissions" tab up at the top, then scroll down to "Files and Folders". To upload files, you need to enable"files.content.write" (and you might as well do read also, since verifying your upload via API would require this, whenever you get around to writing a script). Scroll to the bottom and click "Submit" on the little grey bar, which should then show a little green checkmark and "Permissions change successful", indicating you have successfully submitted to your Dropbox masters, peasant.
Head back over to the "Settings" tab - you'll probably be here a lot during testing and script writing, since the token they provide expires after a few hours. It IS possible to tell the token to never expire, but I don't recommend doing so because A) it's a security no-no, and B) that feature will be deprecated soon (or so they claim). It would be nice if you could SET an expiration time, but that's evidently too much to ask. Just leave this site open in the background when you're working on this, and if you need a new token, refresh the page and click "Generate" in the OAuth 2 section - do that now, and copy the token somewhere for use in the next steps.
----- 3) /upload_session/start -----
You can find their documentation for this API call here, but unless you're a masochist, you probably won't find it terribly useful, other than to provide the basic request format. Go ahead and copy their request format, but the first thing I recommend you do is chop off the last line, with --data-binary (and the trailing backslash from the previous line), since it's not really useful and will just confuse you more than help you - we'll do the actual uploading with the /upload_session/append_v2 call, not this one.
Think of the calls kind of like this:
/upload_session/start - establish connection /upload_session/append_v2 - upload data /upload_session/finish - close connection
Only the second call actually transmits any file data. Yes, it's technically possible to cram some data in the first and last calls, but for the sake of clarity, I'd advise against it for the moment - what you do after reading this guide is between you and God (or Satan if you're cool), but you came here for help, so just take my word on it for the time being, eh?
All we really want from this API call is a session_id, because that's what we need in order to string together our 150MB chunks into a single file. If your file is less than 150MB, then what are you even doing here? Just use /upload instead of torturing yourself with all this, you nut.
Below is the actual output from my test, showing the request and response:
Don't worry - my token and session_id have been changed to protect the innocent (Dragnet theme plays).
Most of the above is ripped straight from the help docs, with one notable exception - the token (Authorization: Bearer <token>). You'll need YOUR token in the same place in YOUR request. Additionally, as I said previously, I've chopped out the last line and the trailing backslash from the previous line, because I don't want to send any data with this request, all I want is that sweet, sweet session_id. Note that the whole value is needed, pid_upload_session: included, as you'll see on the next step.
Note: If you get a response with an error about "permissions" or "wrong scope" instead of session_id, that means you didn't listen to me earlier when I said "don't generate a token until AFTER you've changed the permissions" - you're either using a token from before you changed the permissions or you screwed up on setting the permissions. Go back to that step and try again.
----- 4) /upload_session/append_v2 -----
The documentation for this API call is here, but again, all we care about is the basic request format. This time, leave the --data-binary part in there - we're actually uploading data this time. Note that it IS important to use --data-binary, not just --data or -d - that will screw things up royally, so make sure to use --data-binary instead.
This time I'm going to show output from three requests, back to back, to properly illustrate the correct method:
There are some differences here from /upload_session/start, starting with the response - instead of giving us an actual useful reply of some kind, we get null - this is Dropbox's way of telling you the upload succeeded. No, I don't know why they chose to do it that way, and yes, I think it would be lots more helpful for there to be actual usable data here, but hey, we're living in the world we've got, not the one we want, you know?
Something else different is the value of the Dropbox-API-Arg header - there's more in there, including some stuff we need to populate. You'll see our friend session_id from the last step as joined the party in his designated spot (so make sure your session_id friend is there, too), and he brought along ANOTHER friend (without even asking!) - offset, which, for the first request, is set to 0. This is an important piece of information, because it tells Dropbox where to pick up after the last request left off. This being our first actual upload with data in it, there's nothing to append to yet, so offset is set to 0 on this request. As we submit additional requests, we'll need to change this number to reflect the data we've already submitted - luckily, this is generally pretty simple, since most of these files are exactly 150000000 bytes, so we just increment the number by that amount for each subsequent request.
The final difference is the path to the chunk, shown after --data-binary. Note that the path is preceded by the "@" symbol - this just tells cURL to read and transmit the file at that path instead of the actual text itself - you should ALWAYS have the "@" symbol after --data-binary, separated by a space, but do NOT put a space between the "@" symbol and the path - the correct format is: --data-binary move/camera/camera6.tar.gz.d/camera6.tar.gz_00
Once you've sent off the first request, make sure your second request has the correct offset value and the filename in the path for --data-binary ends with a number one higher than your last ("_00" becomes "_01", "_01" becomes "_02", etc). You can see on each of my subsequent requests that the offset has been increased and the filename has changed to reflect the next file in the session.
Note: If you input the wrong offset value, the API is kind enough to let you know and give you the correct value, however this value should generally always be some multiple of 150000000 - if you're getting something more random looking, like a "128632849" or some such, you probably used --data or -d like I said not to do - you'll need to start a new session. The last chunk DOES have a weird size, but we shouldn't need to worry about that until the next step.
----- 5) /upload_session/finish -----
Up ahead! Is that...a glimmer of light in the gloom? A waft of fresh air? Could it be...? Yes, adventurer! You are indeed seeing the light at the end of the tunnel and feeling the crisp, fresh air of the open world beyond - we're almost done.
This final request (documented here) is very similar to the /upload_session/append_v2 requests we just did, however it does get a little trickier, because the last chunk is that cute little runty one, so it has less bytes than the others, which means the offset value is no longer just a multiple of 150000000 - you'll need to add that runty, uneven value to the last offset value to find the current offset. Oh no! MATHS!!
Don't fret, my numerically challenged friends! Just look at the filesize in bytes from the ls -la command we did waaay back in step 1 - in my case, you'll see it's listed as "670934575". If all the uploads have been done correctly with /upload_session/append_v2, that means the whole file has been uploaded, so the offset should be the entire filesize - we can just copy that value from the ls -la output and drop that into our offset value, no thinky parts required.
I've added a space between the request and response to make this a bit more readable, since the response actually HAS something to read this time around. Before we get into the response, however, let's look at how the request has changed.
You'll notice --data-binary is gone again, because we're done uploading data - we uploaded all the chunks in the last step, so there's nothing to send here. Another important element is the path value in the Dropbox-API-Arg header - this is the first time we've needed this value, and that's because we're defining where in our Dropbox we want to store this file now that the uploading is done.
Basically, the /upload_session/ stuff gets uploaded to some temp directory on Dropbox's servers, and doesn't actually make its way into your folders until the location is specified in this API call. I suspect this is to prevent a bunch of screwed up partial data from getting saved all over customer accounts from abandoned upload sessions - it's honestly pretty smart to do it this way, because it would be a total nightmare to track down and eliminate all these little rogue chunks otherwise. This is a case of "an ounce of prevention is worth a pound of cure" - by using temp files, they prevent the problem from ever happening.
What it means for us, however, is that this is where we define the location where we want our file to be saved. It's important to note, however, that you can't just save it anywhere (well, depending on how you set up your App waaaaay back at the beginning). If you chose "App folder", then all API uploads to this App go to their own folder, but if you chose "Full Dropbox", you can put it anywhere (one of my favorite scenes from "Cruel Intentions"). For the purposes of this guide, I'm going to assume you chose "App folder", because that's what I did, which is relevant because it impacts where your file is stored, regardless of what path you enter.
After setting up the App, I saw that my dropbox contained a new top level folder called "Apps", and that inside this folder was another folder with the name of the App I created (crApp, in my case, because I am a mature grownup). Any path I specify is relative to that directory - if I uploaded to "/folder/foo.txt, it would live at /Apps/crApp/folder/foo.txt. Keep that in mind when searching for your files after upload.
Assuming your API call went well, you'll be provided with a response showing you the details of your finished file - this is the same information you would get if you uploaded a single file using /upload (assuming that file was under the 150MB limit for that API call). Most of it is pretty self-explanatory, so I won't go into detail here, just note that it shows the filename and path and you should be happy.
----- 6) Verify -----
Hurray! Your file is uploaded!! OR IS IT? As far as I'm concerned, the upload didn't happen until I can download it and verify all the information is there and valid - a corrupted file doesn't do me a hell of a lot of good. Luckily, upon downloading the file on my Mac, I was pleased to discover that everything was intact.
If you followed this guide and got the same kind of output I did, you SHOULD find that your test asset is in perfect working order. You now officially know how to upload files over 150MB to Dropbox. Let's go out and celebrate!!
----- 7) Scripting -----
Personally, I like to celebrate by writing a script! Woo!!
As I mentioned at the beginning, actually uploading large files this way is cumbersome and horrible - a 200GB file, to use an arbitrary number, will have 1334 separate chunks to be uploaded - have fun incrementing offset by 150000000 1337 times, and getting to _1337 on your --data-binary entries. Even a relatively small 10GB file would need 67 separate calls to /upload_session/append_v2.
That would all be completely absurd, so obviously, something better is needed. The reason I made this guide with cURL is so that anyone could look at the basic information and adapt it to their language of choice (I used Python + Requests, personally).
There was actually more of this guide at the end regarding writing a script, but the site incorrectly claimed my post was over 30000 characters so I had to truncate it (it was actually less than 25000, but maybe they could tell more than half of it was dad jokes and snark and that counted against me). Then the post got marked as spam for a while and my irritation reached a level that made it impossible to care or invest any more effort into this.
The mods un-spamiffied it after I made a rage filled post about it (the "report" feature was useless, but a hateful post DID seem to help), but I'm too emotionally drained from this whole rollercoaster to expend any further effort.
If the guide helps someone have less frustration than I did, I'm happy something good came of it.
"}},"componentScriptGroups({\"componentId\":\"custom.widget.Custom_Scripts\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"component({\"componentId\":\"custom.widget.Qualtrics\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:101000042\",\"message:555797\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://www.dropboxforum.com/discussions/101000042/an-actually-useful-guide-on-uploading-large-files-via-api/555797\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"componentScriptGroups({\"componentId\":\"custom.widget.Qualtrics\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/customComponent/CustomComponent\"]})":[{"__ref":"CachedAsset:text:en_US-components/customComponent/CustomComponent-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/EscalatedMessageBanner\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSolvedBadge\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/AcceptedSolutionButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMore\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/nodes/NodeView/NodeViewCard\"]})":[{"__ref":"CachedAsset:text:en_US-components/nodes/NodeView/NodeViewCard-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewInline\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1741624997000"}],"message({\"id\":\"message:734071\"})":{"__ref":"ForumReplyMessage:message:734071"},"message({\"id\":\"message:822811\"})":{"__ref":"ForumReplyMessage:message:822811"},"message({\"id\":\"message:556021\"})":{"__ref":"ForumReplyMessage:message:556021"},"message({\"id\":\"message:556089\"})":{"__ref":"ForumReplyMessage:message:556089"},"message({\"id\":\"message:711536\"})":{"__ref":"ForumReplyMessage:message:711536"},"message({\"id\":\"message:734070\"})":{"__ref":"ForumReplyMessage:message:734070"},"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeDescription\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/nodes/NodeTopicsCount\"]})":[{"__ref":"CachedAsset:text:en_US-components/nodes/NodeTopicsCount-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/nodes/NodeLatestActivityTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/nodes/NodeLatestActivityTime-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/nodes/NodeFollowersCount\"]})":[{"__ref":"CachedAsset:text:en_US-components/nodes/NodeFollowersCount-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1741624997000"}],"cachedText({\"lastModified\":\"1741624997000\",\"locale\":\"en-US\",\"namespaces\":[\"components/tags/TagView/TagViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1741624997000"}]},"CachedAsset:pages-1742808516333":{"__typename":"CachedAsset","id":"pages-1742808516333","value":[{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"HealthCheckPage","type":"COMMUNITY","urlPath":"/health","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1742808516333,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"anonymous","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"true","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MM-dd-yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":null,"possibleValues":["en-US","fr-FR","de-DE","ja-JP","pt-BR","es-ES"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"AssociatedImage:{\"url\":\"https://www.dropboxforum.com/t5/s/mxpez29397/images/bi0xNDMtUnVwd2g3\"}":{"__typename":"AssociatedImage","url":"https://www.dropboxforum.com/t5/s/mxpez29397/images/bi0xNDMtUnVwd2g3","mimeType":"image/svg+xml"},"Category:category:101000041":{"__typename":"Category","id":"category:101000041","entityType":"CATEGORY","displayId":"101000041","nodeType":"category","depth":3,"title":"Developer & API","shortTitle":"Developers & API","parent":{"__ref":"Category:category:101007"},"categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top","entityType":"CATEGORY","shortTitle":"Top"},"Category:category:English":{"__typename":"Category","id":"category:English","displayId":"English","nodeType":"category","depth":1,"parent":{"__ref":"Category:category:top"},"title":"English","entityType":"CATEGORY","shortTitle":"en"},"Category:category:101007":{"__typename":"Category","id":"category:101007","displayId":"101007","nodeType":"category","depth":2,"parent":{"__ref":"Category:category:English"},"title":"Discover","entityType":"CATEGORY","shortTitle":"Discover","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101000042":{"__typename":"Forum","id":"board:101000042","entityType":"FORUM","displayId":"101000042","nodeType":"board","depth":4,"conversationStyle":"FORUM","title":"Discuss Dropbox Developer & API","description":"Make connections with other developers","avatar":{"__ref":"AssociatedImage:{\"url\":\"https://www.dropboxforum.com/t5/s/mxpez29397/images/bi0xNDMtUnVwd2g3\"}"},"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:101000041"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:mxpez29397"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:English"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:101007"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:101000041"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"shortTitle":"Discuss Dropbox Developer & API","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"PUBLISH_TIME","repliesFormat":"threaded"},"topicsCount":810,"messageActivity":{"__typename":"MessageActivity","corePropertyChangeTime":"2025-03-20T04:23:52.933-07:00"},"subscriptionsCount":236,"eventPath":"category:101000041/category:101007/category:English/community:mxpez29397board:101000042/","tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":false,"tagType":"PRESET_ONLY"},"Rank:rank:43":{"__typename":"Rank","id":"rank:43","position":26,"name":"Helpful | Level 6","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:1490369":{"__typename":"User","id":"user:1490369","uid":1490369,"login":"TheFlodge","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-2.svg?time=0"},"rank":{"__ref":"Rank:rank:43"},"email":"","messagesCount":5,"biography":null,"topicsCount":2,"kudosReceivedCount":7,"kudosGivenCount":6,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2021-11-06T06:43:47.881-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:mxpez29397/user:1490369"},"ForumTopicMessage:message:555797":{"__typename":"ForumTopicMessage","uid":555797,"subject":"An actually USEFUL guide on uploading large files via API","id":"message:555797","revisionNum":3,"repliesCount":6,"author":{"__ref":"User:user:1490369"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:101000042"},"conversation":{"__ref":"Conversation:conversation:555797"},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:555797"},"body":"
Hello fellow Dropsketeers!
So after writing what I hope is viewed as a SCATHINGindictment of Dropbox's awful CLI support and API functionality/documentation, I decided that, while it was a somewhat satisfying way to blow off steam, it doesn't really help anyone in the same predicament (other than letting them know they're not insane or stupid, it's just terribly implemented and poorly documented). It occurred to me that some of the pageviews on my rant were probably from people Googling terms in order to try to find something useful that could actually help them figure this out. That being the case, I decided to channel my frustration into a more useful outlet by writing this simple guide to uploading large files from CLI via the API.
\n
This guide makes a few assumptions: 1) You have a dropbox account (or a free trial or something - access to dropbox, basically). 2) You are working from Ubuntu or some other linux distro's CLI, not a GUI, and know how to do simple things like run cURL and read output from \"ls\". 3) You have a Dropbox developer account (if not, go here - they're free for Dropbox users and easy to set up). 4) You have created your first \"App\" in the developer section (if not, click \"App console\" in the upper right, then \"Create app\" and follow this guide).
\n
For the purposes of this guide, I am using cURL to illustrate how to upload the files, however if you're working with files a few gigs or larger, you're going to need to script this, else you'll still spend the better part of an afternoon getting your content uploaded due to the fact that you have to upload things in 150MB chunks, and that chunking is done manually, by you, then POSTed one at a time, by you. In fairness, it's possible to run concurrent uploads, but I'm not ready to further abuse myself trying to translate their documentation into a useful format again...perhaps next time I'm feeling depressed and want to self-harm (it's a joke, people, relax - harming yourself is bad and if you're doing it or thinking about it, talk to a mental health professional).
\n
Disclaimer: This guide is provided as-is and might be a little quick and dirty, as I'm also watching Squid Game while writing it (and that show just DEMANDS your attention, especially with original audio and subtitles), but I'll include CLI examples and output to illustrate exactly what I did in order to upload my example file, a 640MB gzipped archive of pictures (sexy pictures ☞-_^☞). I am not professionally affiliated with Dropbox in any way, other than as a customer bound to them by my annual subscription period (and, increasingly, the white hot fire of my rage).
Okay, so the first thing we need to do here is choose a file and prepare it for upload. Let's take a look at my example file, which lives in \"~/move/camera/\" (I'm already in ~/, so I'm just using relative paths):
This is clearly over the 150MB limit set for \"/upload\", hence the need to use \"/upload_session/\" (Fun fact: If you try to upload something over the limit, you don't get an error message, instead you get a 4xx HTML response page, with no explanation of what happened or why. Helpful!)
\n
Let's split this guy into chunks - in my case, I want to dump them into a directory in order to keep things neat, so I'll create a dir and output there. Additionally, \"split\" labels stuff with an alpha format by default (aa, ab, ac), but I like numbers better, so we'll pass the -d option to get that output (something something \"giving it the D\", laughter):
\n
$ mkdir move/camera/camera6.tar.gz.d/ $ split -db 150000000 move/camera/camera6.tar.gz move/camera/camera6.tar.gz.d/camera6.tar.gz_ $ ls -la move/camera/camera6.tar.gz.d/ total 655268 drwxrwxr-x 2 theflodge theflodge 4096 Nov 7 08:41 . drwxrwxr-x 3 theflodge theflodge 16384 Nov 7 08:41 .. -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_00 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_01 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_02 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_03 -rw-rw-r-- 1 theflodge theflodge 70934575 Nov 7 08:41 camera6.tar.gz_04
\n
If you're not familiar with the split command, what I've done here, besides using -d in order to get numeric output, is declared the size in bytes of the chunks I want with -b 150000000, the file I want to chop up, move/camera/camera6.tar.gz, and the destination and naming convention for the chunks, move/camera/camera6.tar.gz.d/camera6.tar.gz_. So:
\n
$ split -<options> <filename> <destination> -<options> : \"-db 150000000\" = d for numeric output, b for \"this many bytes\", 150000000 because we want 150MB (well, technically 144MB, but I don't want to get into all that). <filename> : \"move/camera/camera6.tar.gz\" = my sweet, innocent example file, about to be rent asunder. <destination> : \"move/camera/camera6.tar.gz.d/camera6.tar.gz_\" = the folder I made plus the naming convention I want to use - if you put nothing here, you'll get \"x00, x01\" etc, which is fine, I just prefer to give everything descriptive names in case I forget due to the head trauma from repeatedly smashing my face into the keys in frustration.
\n
If everything went well, there should be a directory full of chunks now. We can see in my output that there are five happy little chunks waiting to be POSTed, with the last little runty chunk being the leftover bytes that don't add up to 150MB (poor lil' guy).
\n
----- 2) Generate a token -----
\n
\n
At the top of this guide, I mentioned that I'm assuming you're both a customer and have signed up for a free developer account, and that you've successfully created your first App (although I provided some links to do those things if you haven't already). You'll need an App from this point forward.
\n
\n
Go to your App (easiest way is just to go to the main developer page, then click \"App console\" in the upper right, followed by your App). Right here on the \"Settings\" page, there's a section to generate an OAuth 2 token - but don't do that yet. First, we need to change some permissions, and generated tokens are linked to permissions, so if you generate one now, then change the permissions, you'll need to generate a new one or it won't use the new permissions.
\n
\n
Go to the \"Permissions\" tab up at the top, then scroll down to \"Files and Folders\". To upload files, you need to enable\"files.content.write\" (and you might as well do read also, since verifying your upload via API would require this, whenever you get around to writing a script). Scroll to the bottom and click \"Submit\" on the little grey bar, which should then show a little green checkmark and \"Permissions change successful\", indicating you have successfully submitted to your Dropbox masters, peasant.
\n
Head back over to the \"Settings\" tab - you'll probably be here a lot during testing and script writing, since the token they provide expires after a few hours. It IS possible to tell the token to never expire, but I don't recommend doing so because A) it's a security no-no, and B) that feature will be deprecated soon (or so they claim). It would be nice if you could SET an expiration time, but that's evidently too much to ask. Just leave this site open in the background when you're working on this, and if you need a new token, refresh the page and click \"Generate\" in the OAuth 2 section - do that now, and copy the token somewhere for use in the next steps.
\n
----- 3) /upload_session/start -----
\n
You can find their documentation for this API call here, but unless you're a masochist, you probably won't find it terribly useful, other than to provide the basic request format. Go ahead and copy their request format, but the first thing I recommend you do is chop off the last line, with --data-binary (and the trailing backslash from the previous line), since it's not really useful and will just confuse you more than help you - we'll do the actual uploading with the /upload_session/append_v2 call, not this one.
\n
Think of the calls kind of like this:
/upload_session/start - establish connection /upload_session/append_v2 - upload data /upload_session/finish - close connection
\n
Only the second call actually transmits any file data. Yes, it's technically possible to cram some data in the first and last calls, but for the sake of clarity, I'd advise against it for the moment - what you do after reading this guide is between you and God (or Satan if you're cool), but you came here for help, so just take my word on it for the time being, eh?
\n
All we really want from this API call is a session_id, because that's what we need in order to string together our 150MB chunks into a single file. If your file is less than 150MB, then what are you even doing here? Just use /upload instead of torturing yourself with all this, you nut.
\n
Below is the actual output from my test, showing the request and response:
Don't worry - my token and session_id have been changed to protect the innocent (Dragnet theme plays).
\n
Most of the above is ripped straight from the help docs, with one notable exception - the token (Authorization: Bearer <token>). You'll need YOUR token in the same place in YOUR request. Additionally, as I said previously, I've chopped out the last line and the trailing backslash from the previous line, because I don't want to send any data with this request, all I want is that sweet, sweet session_id. Note that the whole value is needed, pid_upload_session: included, as you'll see on the next step.
\n
Note: If you get a response with an error about \"permissions\" or \"wrong scope\" instead of session_id, that means you didn't listen to me earlier when I said \"don't generate a token until AFTER you've changed the permissions\" - you're either using a token from before you changed the permissions or you screwed up on setting the permissions. Go back to that step and try again.
\n
----- 4) /upload_session/append_v2 -----
\n
The documentation for this API call is here, but again, all we care about is the basic request format. This time, leave the --data-binary part in there - we're actually uploading data this time. Note that it IS important to use --data-binary, not just --data or -d - that will screw things up royally, so make sure to use --data-binary instead.
\n
This time I'm going to show output from three requests, back to back, to properly illustrate the correct method:
There are some differences here from /upload_session/start, starting with the response - instead of giving us an actual useful reply of some kind, we get null - this is Dropbox's way of telling you the upload succeeded. No, I don't know why they chose to do it that way, and yes, I think it would be lots more helpful for there to be actual usable data here, but hey, we're living in the world we've got, not the one we want, you know?
\n
Something else different is the value of the Dropbox-API-Arg header - there's more in there, including some stuff we need to populate. You'll see our friend session_id from the last step as joined the party in his designated spot (so make sure your session_id friend is there, too), and he brought along ANOTHER friend (without even asking!) - offset, which, for the first request, is set to 0. This is an important piece of information, because it tells Dropbox where to pick up after the last request left off. This being our first actual upload with data in it, there's nothing to append to yet, so offset is set to 0 on this request. As we submit additional requests, we'll need to change this number to reflect the data we've already submitted - luckily, this is generally pretty simple, since most of these files are exactly 150000000 bytes, so we just increment the number by that amount for each subsequent request.
\n
The final difference is the path to the chunk, shown after --data-binary. Note that the path is preceded by the \"@\" symbol - this just tells cURL to read and transmit the file at that path instead of the actual text itself - you should ALWAYS have the \"@\" symbol after --data-binary, separated by a space, but do NOT put a space between the \"@\" symbol and the path - the correct format is: --data-binary move/camera/camera6.tar.gz.d/camera6.tar.gz_00
\n
Once you've sent off the first request, make sure your second request has the correct offset value and the filename in the path for --data-binary ends with a number one higher than your last (\"_00\" becomes \"_01\", \"_01\" becomes \"_02\", etc). You can see on each of my subsequent requests that the offset has been increased and the filename has changed to reflect the next file in the session.
\n
Note: If you input the wrong offset value, the API is kind enough to let you know and give you the correct value, however this value should generally always be some multiple of 150000000 - if you're getting something more random looking, like a \"128632849\" or some such, you probably used --data or -d like I said not to do - you'll need to start a new session. The last chunk DOES have a weird size, but we shouldn't need to worry about that until the next step.
----- 5) /upload_session/finish -----
\n
Up ahead! Is that...a glimmer of light in the gloom? A waft of fresh air? Could it be...? Yes, adventurer! You are indeed seeing the light at the end of the tunnel and feeling the crisp, fresh air of the open world beyond - we're almost done.
\n
This final request (documented here) is very similar to the /upload_session/append_v2 requests we just did, however it does get a little trickier, because the last chunk is that cute little runty one, so it has less bytes than the others, which means the offset value is no longer just a multiple of 150000000 - you'll need to add that runty, uneven value to the last offset value to find the current offset. Oh no! MATHS!!
\n
Don't fret, my numerically challenged friends! Just look at the filesize in bytes from the ls -la command we did waaay back in step 1 - in my case, you'll see it's listed as \"670934575\". If all the uploads have been done correctly with /upload_session/append_v2, that means the whole file has been uploaded, so the offset should be the entire filesize - we can just copy that value from the ls -la output and drop that into our offset value, no thinky parts required.
I've added a space between the request and response to make this a bit more readable, since the response actually HAS something to read this time around. Before we get into the response, however, let's look at how the request has changed.
\n
You'll notice --data-binary is gone again, because we're done uploading data - we uploaded all the chunks in the last step, so there's nothing to send here. Another important element is the path value in the Dropbox-API-Arg header - this is the first time we've needed this value, and that's because we're defining where in our Dropbox we want to store this file now that the uploading is done.
\n
Basically, the /upload_session/ stuff gets uploaded to some temp directory on Dropbox's servers, and doesn't actually make its way into your folders until the location is specified in this API call. I suspect this is to prevent a bunch of screwed up partial data from getting saved all over customer accounts from abandoned upload sessions - it's honestly pretty smart to do it this way, because it would be a total nightmare to track down and eliminate all these little rogue chunks otherwise. This is a case of \"an ounce of prevention is worth a pound of cure\" - by using temp files, they prevent the problem from ever happening.
\n
What it means for us, however, is that this is where we define the location where we want our file to be saved. It's important to note, however, that you can't just save it anywhere (well, depending on how you set up your App waaaaay back at the beginning). If you chose \"App folder\", then all API uploads to this App go to their own folder, but if you chose \"Full Dropbox\", you can put it anywhere (one of my favorite scenes from \"Cruel Intentions\"). For the purposes of this guide, I'm going to assume you chose \"App folder\", because that's what I did, which is relevant because it impacts where your file is stored, regardless of what path you enter.
\n
After setting up the App, I saw that my dropbox contained a new top level folder called \"Apps\", and that inside this folder was another folder with the name of the App I created (crApp, in my case, because I am a mature grownup). Any path I specify is relative to that directory - if I uploaded to \"/folder/foo.txt, it would live at /Apps/crApp/folder/foo.txt. Keep that in mind when searching for your files after upload.
\n
Assuming your API call went well, you'll be provided with a response showing you the details of your finished file - this is the same information you would get if you uploaded a single file using /upload (assuming that file was under the 150MB limit for that API call). Most of it is pretty self-explanatory, so I won't go into detail here, just note that it shows the filename and path and you should be happy.
----- 6) Verify -----
\n
Hurray! Your file is uploaded!! OR IS IT? As far as I'm concerned, the upload didn't happen until I can download it and verify all the information is there and valid - a corrupted file doesn't do me a hell of a lot of good. Luckily, upon downloading the file on my Mac, I was pleased to discover that everything was intact.
If you followed this guide and got the same kind of output I did, you SHOULD find that your test asset is in perfect working order. You now officially know how to upload files over 150MB to Dropbox. Let's go out and celebrate!!
\n
----- 7) Scripting -----
\n
Personally, I like to celebrate by writing a script! Woo!!
As I mentioned at the beginning, actually uploading large files this way is cumbersome and horrible - a 200GB file, to use an arbitrary number, will have 1334 separate chunks to be uploaded - have fun incrementing offset by 150000000 1337 times, and getting to _1337 on your --data-binary entries. Even a relatively small 10GB file would need 67 separate calls to /upload_session/append_v2.
\n
That would all be completely absurd, so obviously, something better is needed. The reason I made this guide with cURL is so that anyone could look at the basic information and adapt it to their language of choice (I used Python + Requests, personally).
","body@stringLength":"30602","rawBody":"
Hello fellow Dropsketeers!
So after writing what I hope is viewed as a SCATHINGindictment of Dropbox's awful CLI support and API functionality/documentation, I decided that, while it was a somewhat satisfying way to blow off steam, it doesn't really help anyone in the same predicament (other than letting them know they're not insane or stupid, it's just terribly implemented and poorly documented). It occurred to me that some of the pageviews on my rant were probably from people Googling terms in order to try to find something useful that could actually help them figure this out. That being the case, I decided to channel my frustration into a more useful outlet by writing this simple guide to uploading large files from CLI via the API.
\n
This guide makes a few assumptions: 1) You have a dropbox account (or a free trial or something - access to dropbox, basically). 2) You are working from Ubuntu or some other linux distro's CLI, not a GUI, and know how to do simple things like run cURL and read output from \"ls\". 3) You have a Dropbox developer account (if not, go here - they're free for Dropbox users and easy to set up). 4) You have created your first \"App\" in the developer section (if not, click \"App console\" in the upper right, then \"Create app\" and follow this guide).
\n
For the purposes of this guide, I am using cURL to illustrate how to upload the files, however if you're working with files a few gigs or larger, you're going to need to script this, else you'll still spend the better part of an afternoon getting your content uploaded due to the fact that you have to upload things in 150MB chunks, and that chunking is done manually, by you, then POSTed one at a time, by you. In fairness, it's possible to run concurrent uploads, but I'm not ready to further abuse myself trying to translate their documentation into a useful format again...perhaps next time I'm feeling depressed and want to self-harm (it's a joke, people, relax - harming yourself is bad and if you're doing it or thinking about it, talk to a mental health professional).
\n
Disclaimer: This guide is provided as-is and might be a little quick and dirty, as I'm also watching Squid Game while writing it (and that show just DEMANDS your attention, especially with original audio and subtitles), but I'll include CLI examples and output to illustrate exactly what I did in order to upload my example file, a 640MB gzipped archive of pictures (sexy pictures ☞-_^☞). I am not professionally affiliated with Dropbox in any way, other than as a customer bound to them by my annual subscription period (and, increasingly, the white hot fire of my rage).
Okay, so the first thing we need to do here is choose a file and prepare it for upload. Let's take a look at my example file, which lives in \"~/move/camera/\" (I'm already in ~/, so I'm just using relative paths):
This is clearly over the 150MB limit set for \"/upload\", hence the need to use \"/upload_session/\" (Fun fact: If you try to upload something over the limit, you don't get an error message, instead you get a 4xx HTML response page, with no explanation of what happened or why. Helpful!)
\n
Let's split this guy into chunks - in my case, I want to dump them into a directory in order to keep things neat, so I'll create a dir and output there. Additionally, \"split\" labels stuff with an alpha format by default (aa, ab, ac), but I like numbers better, so we'll pass the -d option to get that output (something something \"giving it the D\", laughter):
\n
$ mkdir move/camera/camera6.tar.gz.d/ $ split -db 150000000 move/camera/camera6.tar.gz move/camera/camera6.tar.gz.d/camera6.tar.gz_ $ ls -la move/camera/camera6.tar.gz.d/ total 655268 drwxrwxr-x 2 theflodge theflodge 4096 Nov 7 08:41 . drwxrwxr-x 3 theflodge theflodge 16384 Nov 7 08:41 .. -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_00 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_01 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_02 -rw-rw-r-- 1 theflodge theflodge 150000000 Nov 7 08:41 camera6.tar.gz_03 -rw-rw-r-- 1 theflodge theflodge 70934575 Nov 7 08:41 camera6.tar.gz_04
\n
If you're not familiar with the split command, what I've done here, besides using -d in order to get numeric output, is declared the size in bytes of the chunks I want with -b 150000000, the file I want to chop up, move/camera/camera6.tar.gz, and the destination and naming convention for the chunks, move/camera/camera6.tar.gz.d/camera6.tar.gz_. So:
\n
$ split -<options> <filename> <destination> -<options> : \"-db 150000000\" = d for numeric output, b for \"this many bytes\", 150000000 because we want 150MB (well, technically 144MB, but I don't want to get into all that). <filename> : \"move/camera/camera6.tar.gz\" = my sweet, innocent example file, about to be rent asunder. <destination> : \"move/camera/camera6.tar.gz.d/camera6.tar.gz_\" = the folder I made plus the naming convention I want to use - if you put nothing here, you'll get \"x00, x01\" etc, which is fine, I just prefer to give everything descriptive names in case I forget due to the head trauma from repeatedly smashing my face into the keys in frustration.
\n
If everything went well, there should be a directory full of chunks now. We can see in my output that there are five happy little chunks waiting to be POSTed, with the last little runty chunk being the leftover bytes that don't add up to 150MB (poor lil' guy).
\n
----- 2) Generate a token -----
\n
\n
At the top of this guide, I mentioned that I'm assuming you're both a customer and have signed up for a free developer account, and that you've successfully created your first App (although I provided some links to do those things if you haven't already). You'll need an App from this point forward.
\n
\n
Go to your App (easiest way is just to go to the main developer page, then click \"App console\" in the upper right, followed by your App). Right here on the \"Settings\" page, there's a section to generate an OAuth 2 token - but don't do that yet. First, we need to change some permissions, and generated tokens are linked to permissions, so if you generate one now, then change the permissions, you'll need to generate a new one or it won't use the new permissions.
\n
\n
Go to the \"Permissions\" tab up at the top, then scroll down to \"Files and Folders\". To upload files, you need to enable\"files.content.write\" (and you might as well do read also, since verifying your upload via API would require this, whenever you get around to writing a script). Scroll to the bottom and click \"Submit\" on the little grey bar, which should then show a little green checkmark and \"Permissions change successful\", indicating you have successfully submitted to your Dropbox masters, peasant.
\n
Head back over to the \"Settings\" tab - you'll probably be here a lot during testing and script writing, since the token they provide expires after a few hours. It IS possible to tell the token to never expire, but I don't recommend doing so because A) it's a security no-no, and B) that feature will be deprecated soon (or so they claim). It would be nice if you could SET an expiration time, but that's evidently too much to ask. Just leave this site open in the background when you're working on this, and if you need a new token, refresh the page and click \"Generate\" in the OAuth 2 section - do that now, and copy the token somewhere for use in the next steps.
\n
----- 3) /upload_session/start -----
\n
You can find their documentation for this API call here, but unless you're a masochist, you probably won't find it terribly useful, other than to provide the basic request format. Go ahead and copy their request format, but the first thing I recommend you do is chop off the last line, with --data-binary (and the trailing backslash from the previous line), since it's not really useful and will just confuse you more than help you - we'll do the actual uploading with the /upload_session/append_v2 call, not this one.
\n
Think of the calls kind of like this:
/upload_session/start - establish connection /upload_session/append_v2 - upload data /upload_session/finish - close connection
\n
Only the second call actually transmits any file data. Yes, it's technically possible to cram some data in the first and last calls, but for the sake of clarity, I'd advise against it for the moment - what you do after reading this guide is between you and God (or Satan if you're cool), but you came here for help, so just take my word on it for the time being, eh?
\n
All we really want from this API call is a session_id, because that's what we need in order to string together our 150MB chunks into a single file. If your file is less than 150MB, then what are you even doing here? Just use /upload instead of torturing yourself with all this, you nut.
\n
Below is the actual output from my test, showing the request and response:
Don't worry - my token and session_id have been changed to protect the innocent (Dragnet theme plays).
\n
Most of the above is ripped straight from the help docs, with one notable exception - the token (Authorization: Bearer <token>). You'll need YOUR token in the same place in YOUR request. Additionally, as I said previously, I've chopped out the last line and the trailing backslash from the previous line, because I don't want to send any data with this request, all I want is that sweet, sweet session_id. Note that the whole value is needed, pid_upload_session: included, as you'll see on the next step.
\n
Note: If you get a response with an error about \"permissions\" or \"wrong scope\" instead of session_id, that means you didn't listen to me earlier when I said \"don't generate a token until AFTER you've changed the permissions\" - you're either using a token from before you changed the permissions or you screwed up on setting the permissions. Go back to that step and try again.
\n
----- 4) /upload_session/append_v2 -----
\n
The documentation for this API call is here, but again, all we care about is the basic request format. This time, leave the --data-binary part in there - we're actually uploading data this time. Note that it IS important to use --data-binary, not just --data or -d - that will screw things up royally, so make sure to use --data-binary instead.
\n
This time I'm going to show output from three requests, back to back, to properly illustrate the correct method:
There are some differences here from /upload_session/start, starting with the response - instead of giving us an actual useful reply of some kind, we get null - this is Dropbox's way of telling you the upload succeeded. No, I don't know why they chose to do it that way, and yes, I think it would be lots more helpful for there to be actual usable data here, but hey, we're living in the world we've got, not the one we want, you know?
\n
Something else different is the value of the Dropbox-API-Arg header - there's more in there, including some stuff we need to populate. You'll see our friend session_id from the last step as joined the party in his designated spot (so make sure your session_id friend is there, too), and he brought along ANOTHER friend (without even asking!) - offset, which, for the first request, is set to 0. This is an important piece of information, because it tells Dropbox where to pick up after the last request left off. This being our first actual upload with data in it, there's nothing to append to yet, so offset is set to 0 on this request. As we submit additional requests, we'll need to change this number to reflect the data we've already submitted - luckily, this is generally pretty simple, since most of these files are exactly 150000000 bytes, so we just increment the number by that amount for each subsequent request.
\n
The final difference is the path to the chunk, shown after --data-binary. Note that the path is preceded by the \"@\" symbol - this just tells cURL to read and transmit the file at that path instead of the actual text itself - you should ALWAYS have the \"@\" symbol after --data-binary, separated by a space, but do NOT put a space between the \"@\" symbol and the path - the correct format is: --data-binary /camera/camera6.tar.gz.d/camera6.tar.gz_00
\n
Once you've sent off the first request, make sure your second request has the correct offset value and the filename in the path for --data-binary ends with a number one higher than your last (\"_00\" becomes \"_01\", \"_01\" becomes \"_02\", etc). You can see on each of my subsequent requests that the offset has been increased and the filename has changed to reflect the next file in the session.
\n
Note: If you input the wrong offset value, the API is kind enough to let you know and give you the correct value, however this value should generally always be some multiple of 150000000 - if you're getting something more random looking, like a \"128632849\" or some such, you probably used --data or -d like I said not to do - you'll need to start a new session. The last chunk DOES have a weird size, but we shouldn't need to worry about that until the next step.
----- 5) /upload_session/finish -----
\n
Up ahead! Is that...a glimmer of light in the gloom? A waft of fresh air? Could it be...? Yes, adventurer! You are indeed seeing the light at the end of the tunnel and feeling the crisp, fresh air of the open world beyond - we're almost done.
\n
This final request (documented here) is very similar to the /upload_session/append_v2 requests we just did, however it does get a little trickier, because the last chunk is that cute little runty one, so it has less bytes than the others, which means the offset value is no longer just a multiple of 150000000 - you'll need to add that runty, uneven value to the last offset value to find the current offset. Oh no! MATHS!!
\n
Don't fret, my numerically challenged friends! Just look at the filesize in bytes from the ls -la command we did waaay back in step 1 - in my case, you'll see it's listed as \"670934575\". If all the uploads have been done correctly with /upload_session/append_v2, that means the whole file has been uploaded, so the offset should be the entire filesize - we can just copy that value from the ls -la output and drop that into our offset value, no thinky parts required.
I've added a space between the request and response to make this a bit more readable, since the response actually HAS something to read this time around. Before we get into the response, however, let's look at how the request has changed.
\n
You'll notice --data-binary is gone again, because we're done uploading data - we uploaded all the chunks in the last step, so there's nothing to send here. Another important element is the path value in the Dropbox-API-Arg header - this is the first time we've needed this value, and that's because we're defining where in our Dropbox we want to store this file now that the uploading is done.
\n
Basically, the /upload_session/ stuff gets uploaded to some temp directory on Dropbox's servers, and doesn't actually make its way into your folders until the location is specified in this API call. I suspect this is to prevent a bunch of screwed up partial data from getting saved all over customer accounts from abandoned upload sessions - it's honestly pretty smart to do it this way, because it would be a total nightmare to track down and eliminate all these little rogue chunks otherwise. This is a case of \"an ounce of prevention is worth a pound of cure\" - by using temp files, they prevent the problem from ever happening.
\n
What it means for us, however, is that this is where we define the location where we want our file to be saved. It's important to note, however, that you can't just save it anywhere (well, depending on how you set up your App waaaaay back at the beginning). If you chose \"App folder\", then all API uploads to this App go to their own folder, but if you chose \"Full Dropbox\", you can put it anywhere (one of my favorite scenes from \"Cruel Intentions\"). For the purposes of this guide, I'm going to assume you chose \"App folder\", because that's what I did, which is relevant because it impacts where your file is stored, regardless of what path you enter.
\n
After setting up the App, I saw that my dropbox contained a new top level folder called \"Apps\", and that inside this folder was another folder with the name of the App I created (crApp, in my case, because I am a mature grownup). Any path I specify is relative to that directory - if I uploaded to \"/folder/foo.txt, it would live at /Apps/crApp/folder/foo.txt. Keep that in mind when searching for your files after upload.
\n
Assuming your API call went well, you'll be provided with a response showing you the details of your finished file - this is the same information you would get if you uploaded a single file using /upload (assuming that file was under the 150MB limit for that API call). Most of it is pretty self-explanatory, so I won't go into detail here, just note that it shows the filename and path and you should be happy.
----- 6) Verify -----
\n
Hurray! Your file is uploaded!! OR IS IT? As far as I'm concerned, the upload didn't happen until I can download it and verify all the information is there and valid - a corrupted file doesn't do me a hell of a lot of good. Luckily, upon downloading the file on my Mac, I was pleased to discover that everything was intact.
If you followed this guide and got the same kind of output I did, you SHOULD find that your test asset is in perfect working order. You now officially know how to upload files over 150MB to Dropbox. Let's go out and celebrate!!
\n
----- 7) Scripting -----
\n
Personally, I like to celebrate by writing a script! Woo!!
As I mentioned at the beginning, actually uploading large files this way is cumbersome and horrible - a 200GB file, to use an arbitrary number, will have 1334 separate chunks to be uploaded - have fun incrementing offset by 150000000 1337 times, and getting to _1337 on your --data-binary entries. Even a relatively small 10GB file would need 67 separate calls to /upload_session/append_v2.
\n
That would all be completely absurd, so obviously, something better is needed. The reason I made this guide with cURL is so that anyone could look at the basic information and adapt it to their language of choice (I used Python + Requests, personally).
","kudosSumWeight":1,"postTime":"2021-11-07T07:01:17.703-08:00","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"TagEdge","cursor":"MjUuMnwyLjF8b3wxMHxfTlZffDE","node":{"__typename":"Tag","id":"tag:Developers","text":"Developers","time":"2019-05-29T02:04:51.122-07:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}}]},"timeToRead":15,"currentRevision":{"__ref":"Revision:revision:555797_3"},"latestVersion":null,"metrics":{"__typename":"MessageMetrics","views":6342},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"isEscalated":null,"placeholder":false,"originalMessageForPlaceholder":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"archivalData":null,"searchSnippet":"...amera6.tar.gz\\\",\\\"mode\\\": \\\"add\\\",\\\"autorename\\\": true,\\\"mute\\\": false,\\\"strict_conflict\\\": false}}\" \\ > --header \"Content-Type: application/octet-stream\" \n {\"name\": \"camera6.tar.gz\", \"p...","replies":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwxMHw1MjoxfGludCw1NTYwMjEsNTU2MDIx","node":{"__ref":"ForumReplyMessage:message:556021"}},{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwxMHw1MjoxfGludCw1NTYwMjEsNzM0MDcw","node":{"__ref":"ForumReplyMessage:message:734070"}},{"__typename":"MessageEdge","cursor":"MjUuMnwyLjF8aXwxMHw1MjoxfGludCw1NTYwMjEsODIyODEx","node":{"__ref":"ForumReplyMessage:message:822811"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"customFields":[]},"Conversation:conversation:555797":{"__typename":"Conversation","id":"conversation:555797","solved":false,"topic":{"__ref":"ForumTopicMessage:message:555797"},"lastPostingActivityTime":"2025-02-17T20:05:33.750-08:00","lastPostTime":"2025-02-17T20:05:33.750-08:00","unreadReplyCount":6,"isSubscribed":false},"ModerationData:moderation_data:555797":{"__typename":"ModerationData","id":"moderation_data:555797","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":"member"},"Revision:revision:555797_3":{"__typename":"Revision","id":"revision:555797_3","lastEditTime":"2021-11-08T01:22:02.845-08:00"},"CachedAsset:theme:customTheme1-1743095142529":{"__typename":"CachedAsset","id":"theme:customTheme1-1743095142529","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["custom"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"DBX_Logo_512-1733312516365.png","imageLastModified":"1733312518563","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"DBLogoLong-1701789450005.png","imageLastModified":"1701789453105","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1200px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"0","borderRadius":"0","borderRadiusLg":"0","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"400","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-gray-900)","secondaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-300)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-300-h), var(--lia-bs-gray-300-s), calc(var(--lia-bs-gray-300-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-300-h), var(--lia-bs-gray-300-s), calc(var(--lia-bs-gray-300-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-gray-900)","tertiaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-gray-700)","destructiveTextHoverColor":"hsl(var(--lia-bs-gray-700-h), var(--lia-bs-gray-700-s), calc(var(--lia-bs-gray-700-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-gray-700-h), var(--lia-bs-gray-700-s), calc(var(--lia-bs-gray-700-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"DARK","sideContent":"DARK","radiusSm":"6px","radius":"10px","radiusLg":"18px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.16)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.12)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"400","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#3DD3EE","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#B4DF1C","blogColor":"#FAD24B","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#B4C8E1","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#F9A34B","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#C8AFF0","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#949494","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#0061FE","secondary":"#333333","bodyText":"#1A1918","bodyBg":"#FFFFFF","info":"#3080FF","success":"#0F503C","warning":"#845909","danger":"#FA551E","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#C8AFF0","#B4DC19","#F9A34B","#FFAFA5","#3DD3EE","#B4C8E1","#FAD24B","#FA551E","#F7F5F2"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"SharpGroteskDB Bold","fontStyle":"NORMAL","fontWeight":"700","h1FontSize":"28px","h2FontSize":"22px","h3FontSize":"18px","h4FontSize":"16px","h5FontSize":"16px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":null,"imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"30px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"30px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Atlas Grotesk Regular","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[{"source":"SERVER","name":"DB Sharp Grotesk Variable","styles":[{"style":"NORMAL","weight":"500","__typename":"FontStyleData"}],"assetNames":["DBSharpGroteskVariable-normal-500.ttf"],"__typename":"CustomFont"},{"source":"SERVER","name":"SharpGroteskDB Bold","styles":[{"style":"NORMAL","weight":"700","__typename":"FontStyleData"},{"style":"NORMAL","weight":"400","__typename":"FontStyleData"}],"assetNames":["SharpGroteskDBBold-normal-700.woff2","SharpGroteskDBBold-normal-400.woff2"],"__typename":"CustomFont"},{"source":"SERVER","name":"Atlas Grotesk Regular","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"},{"style":"ITALIC","weight":"400","__typename":"FontStyleData"},{"style":"ITALIC","weight":"700","__typename":"FontStyleData"}],"assetNames":["AtlasGroteskRegular-normal-400.woff2","AtlasGroteskRegular-normal-700.woff2","AtlasGroteskRegular-italic-400.woff2","AtlasGroteskRegular-italic-700.woff2"],"__typename":"CustomFont"}],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1741624997000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:dropbox.prod:pages/forums/ForumMessagePage:board:101000042-1743095033394":{"__typename":"CachedAsset","id":"quilt:dropbox.prod:pages/forums/ForumMessagePage:board:101000042-1743095033394","value":{"id":"ForumMessagePage_bVInxJ","container":{"id":"Common","headerProps":{"backgroundImageProps":null,"backgroundColor":null,"addComponents":null,"removeComponents":["community.widget.bannerWidget"],"componentOrder":null,"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"footerProps":null,"footerComponentProps":null,"items":[{"id":"YLUzfi","layout":"MAIN_SIDE","bgColor":"transparent","showTitle":false,"showDescription":false,"textPosition":"CENTER","textColor":"var(--lia-bs-body-color)","sectionEditLevel":null,"bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"MainSideQuiltSection","columnMap":{"main":[{"id":"messages.widget.topicWithThreadedReplyListWidget","className":"lia-topic-with-replies","props":{"editLevel":"CONFIGURE"},"__typename":"QuiltComponent"}],"side":[{"id":"nodes.widget.nodeActionButtonWidget","className":null,"props":{"buttonAlignment":"left","instanceId":null,"buttonStyle":"sm","actionButtonTitle":"Start a new discussion","lazyLoad":false,"buttonWidth":"full_width"},"__typename":"QuiltComponent"},{"id":"nodes.widget.nodeInformationWidget","className":null,"props":{"useWidgetTitle":true,"viewVariant":{"type":"card","props":{"useNodePostCount":true,"useNodeFollowersCount":true,"useNodeDescription":true,"useNodeTopicsCount":false,"useNodeAction":false,"useNodeMembersCount":false,"useNodeMembershipType":false,"useNodeTitle":false,"useNodeMembersCountText":true,"useNodeMembership":false,"useNodeCreationDate":false,"textAlignment":"center","useWidgetTitle":true,"useNodeOwners":false,"useNodeAvatar":true,"useNodeLatestActivityTime":true,"useClickableCard":false}},"alignment":"center","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Need_more_support","className":null,"props":{"widgetVisibility":"signedInOrAnonymous","useTitle":false,"useBackground":true,"title":"Need more support","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"messages.widget.relatedContentWidget","className":null,"props":{"hideIfEmpty":true,"enablePagination":false,"useTitle":true,"listVariant":{"type":"unstyled","props":{"listItemSpacing":"xxl"}},"pageSize":5,"style":"compact","pagerVariant":{"type":"none"},"viewVariant":{"type":"inline","props":{"useRepliesCount":false,"useMedia":false,"useAuthorRank":false,"useNode":false,"boardIconSize":"24","useAuthorLoginLink":true,"useNodeLink":true,"usePreviewMedia":true,"timeStampType":"postTime","useTextBody":true,"useSolvedBadge":false,"subjectAs":"h6","renderPostTimeBeforeAuthor":true,"useAvatar":false,"useVideoPreview":false,"portraitClampBodyLines":3,"useCompactSpacing":true,"useTimeToRead":false,"useSpoilerFreeBody":true,"useKudosCount":false,"useViewCount":false,"useBody":false,"useTags":false,"clampSubjectLines":1,"useBoardIcon":true,"useMessageTimeLink":true,"useAuthorLogin":true}},"lazyLoad":false,"panelType":"standard"},"__typename":"QuiltComponent"},{"id":"messages.widget.messageListForNodeByRecentActivityWidget","className":null,"props":{"hideIfEmpty":true,"listVariant":{"type":"unstyled","props":{"listItemSpacing":"xxl"}},"useTitle":true,"addTags":false,"showTabs":false,"pageSize":5,"pagerVariant":{"type":"loadMore"},"style":"compact","viewVariant":{"type":"inline","props":{"useRepliesCount":false,"useMedia":false,"useAuthorRank":false,"useNode":false,"boardIconSize":"24","truncateBodyLength":-1,"useNodeLink":true,"usePreviewMedia":false,"timeStampType":"conversation.lastPostingActivityTime","avatarSize":"40","useTextBody":true,"useSolvedBadge":true,"subjectAs":"h6","renderPostTimeBeforeAuthor":true,"useAvatar":true,"useTimeToRead":false,"useSpoilerFreeBody":true,"useKudosCount":false,"useViewCount":false,"useBody":false,"useTags":false,"clampSubjectLines":1,"useBoardIcon":false,"useMessageTimeLink":true,"clampBodyLines":3,"useAuthorLogin":true,"useUnreadCount":false,"useNodeHoverCard":true,"useSearchSnippet":false}},"panelType":"standard","sorts":{"conversationLastPostingActivityTime":{"direction":"DESC"}},"lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1741624997000","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-pages/forums/ForumMessagePage-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-pages/forums/ForumMessagePage-1741624997000","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This message cannot be found","name":"Forum Message Page","section.message-list.title":"Forum Discussion","archivedMessageTitle":"This Content Has Been Archived","section.YLUzfi.title":"Forum Discussion","section.section-1709130958266.description":"","section.section-1709130958266.title":"","section.section-1720630512544.title":"","section.YLUzfi.description":"","section.jPblZp.description":"","section.message-list.description":"","section.section-1720630512544.description":"","section.jPblZp.title":""},"localOverride":false},"CachedAsset:quiltWrapper:dropbox.prod:Common:en-US-1743156633969":{"__typename":"CachedAsset","id":"quiltWrapper:dropbox.prod:Common:en-US-1743156633969","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"var(--lia-bs-white)","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":false,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","linkFontWeight":"400","controllerHighlightColor":"#FA551E","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkFontSize":"14px","linkBoxShadowHover":"none","backgroundOpacity":1,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","linkTextBorderBottom":"none","hamburgerColor":"var(--lia-nav-controller-icon-color)","brandLogoHeight":"30px","linkLetterSpacing":"normal","linkBgHoverColor":"transparent","collapseMenuDividerOpacity":0.16,"paddingBottom":"15px","dropdownPaddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","linkJustifyContent":"flex-start","linkColor":"var(--lia-bs-body-color)","collapseMenuDividerBg":"var(--lia-nav-link-color)","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-primary)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"0","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","linkPaddingX":"10px","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","paddingTop":"15px","linkPaddingY":"5px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkBgColor":"transparent","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"links":{"sideLinks":[{"children":[],"linkType":"INTERNAL","id":"migrated-link-10","params":{"categoryId":"101004000"},"routeName":"CategoryPage"},{"children":[],"linkType":"EXTERNAL","id":"migrated-link-12","url":"https://www.dropbox.com/help","target":"BLANK"},{"children":[],"linkType":"EXTERNAL","id":"external","url":"https://learn.dropbox.com/","target":"BLANK"},{"children":[],"linkType":"EXTERNAL","id":"migrated-link-13","url":"http://www.dropbox.com/support","target":"BLANK"},{"children":[],"linkType":"EXTERNAL","id":"migrated-link-11","url":"http://www.dropbox.com","target":"BLANK"}],"mainLinks":[{"children":[{"linkType":"INTERNAL","id":"101001016","params":{"boardId":"101001016","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001014","params":{"boardId":"101001014","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001013","params":{"boardId":"101001013","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001017","params":{"boardId":"101001017","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001018","params":{"boardId":"101001018","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001020","params":{"boardId":"101001020","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001019","params":{"boardId":"101001019","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001015","params":{"boardId":"101001015","categoryId":"101001000"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101001012","params":{"boardId":"101001012","categoryId":"101001000"},"routeName":"ForumBoardPage"}],"linkType":"INTERNAL","id":"101001000","params":{"categoryId":"101001000"},"routeName":"CategoryPage"},{"children":[{"linkType":"INTERNAL","id":"101007-c1","params":{"boardId":"101007C1","categoryId":"101007"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"101000041","params":{"categoryId":"101000041"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"101003016","params":{"boardId":"101003016","categoryId":"101007"},"routeName":"ForumBoardPage"}],"linkType":"INTERNAL","id":"101007","params":{"categoryId":"101007"},"routeName":"CategoryPage"},{"children":[{"linkType":"INTERNAL","id":"1010-link","params":{"groupHubId":"1010"},"routeName":"GroupHubPage"},{"linkType":"INTERNAL","id":"music-link","params":{"groupHubId":"Music"},"routeName":"GroupHubPage"},{"linkType":"INTERNAL","id":"photography-link","params":{"groupHubId":"Photography"},"routeName":"GroupHubPage"},{"linkType":"INTERNAL","id":"dropboxfor-mac-o-s12","params":{"groupHubId":"DropboxforMacOS12"},"routeName":"GroupHubPage"},{"linkType":"INTERNAL","id":"1009-link","params":{"groupHubId":"1009"},"routeName":"GroupHubPage"},{"linkType":"INTERNAL","id":"1012-link","params":{"groupHubId":"1012"},"routeName":"GroupHubPage"},{"linkType":"INTERNAL","id":"1007-link","params":{"groupHubId":"1007"},"routeName":"GroupHubPage"},{"linkType":"INTERNAL","id":"super-user-link","params":{"groupHubId":"super-user"},"routeName":"GroupHubPage"}],"linkType":"INTERNAL","id":"101010","params":{"categoryId":"101010"},"routeName":"CategoryPage"},{"children":[],"linkType":"INTERNAL","id":"101002013","params":{"boardId":"101002013","categoryId":"English"},"routeName":"IdeaBoardPage"}]},"className":"QuiltComponent_lia-component-edit-mode__0nCcm","showSearchIcon":true,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"custom.widget.Announcement_bar","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":{"backgroundColor":"var(--lia-bs-white)","linkHighlightColor":"#0061FE","visualEffects":{"showBottomBorder":true},"backgroundOpacity":100,"linkTextColor":"var(--lia-bs-gray-700)"},"__typename":"QuiltComponent"},{"id":"community.widget.bannerWidget","props":{"backgroundColor":"var(--lia-bs-white)","visualEffects":{"showBottomBorder":true},"backgroundImageProps":{"backgroundSize":"COVER","backgroundPosition":"CENTER_CENTER","backgroundRepeat":"NO_REPEAT"},"fontColor":"var(--lia-bs-body-color)"},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"var(--lia-bs-white)","items":[{"id":"custom.widget.Footer_Community_Home","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":false,"useBackground":true,"title":"Footer","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Custom_Scripts","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Qualtrics","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1741624997000","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"CachedAsset:component:custom.widget.Announcement_bar-en-1743092136620":{"__typename":"CachedAsset","id":"component:custom.widget.Announcement_bar-en-1743092136620","value":{"component":{"id":"custom.widget.Announcement_bar","template":{"id":"Announcement_bar","markupLanguage":"HTML","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Announcement_bar","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"TEXTHTML","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Need_more_support-en-1743092136620":{"__typename":"CachedAsset","id":"component:custom.widget.Need_more_support-en-1743092136620","value":{"component":{"id":"custom.widget.Need_more_support","template":{"id":"Need_more_support","markupLanguage":"HTML","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Need_more_support","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"TEXTHTML","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Footer_Community_Home-en-1743092136620":{"__typename":"CachedAsset","id":"component:custom.widget.Footer_Community_Home-en-1743092136620","value":{"component":{"id":"custom.widget.Footer_Community_Home","template":{"id":"Footer_Community_Home","markupLanguage":"HTML","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Footer_Community_Home","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"TEXTHTML","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Custom_Scripts-en-1743092136620":{"__typename":"CachedAsset","id":"component:custom.widget.Custom_Scripts-en-1743092136620","value":{"component":{"id":"custom.widget.Custom_Scripts","template":{"id":"Custom_Scripts","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Custom_Scripts","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Qualtrics-en-1743092136620":{"__typename":"CachedAsset","id":"component:custom.widget.Qualtrics-en-1743092136620","value":{"component":{"id":"custom.widget.Qualtrics","template":{"id":"Qualtrics","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"Qualtrics widget","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Qualtrics","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"Qualtrics widget","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1741624997000","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1741624997000","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons","messageArchived":"This post was archived on {date}","relatedUrl":"View Related Content","relatedContentText":"Showing related content","archivedContentLink":"View Archived Content"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeActionButtonWidget-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeActionButtonWidget-1741624997000","value":{"defaultActionButtonTitle":"Start a Conversation","actionButton.grouphub.startDiscussion":"Start a Discussion","actionButton.title@board:FORUM":"Start a Discussion","actionButton.title@board:BLOG":"Create a Blog Post","actionButton.title@board:TKB":"Create an Article","actionButton.title@board:OCCASION":"Create an Event","actionButton.title@board:IDEA":"Suggest an Idea","joinGroupHub":"Join Group","join.successHeader":"Welcome","join.successMessage":"You are now a member of this group and are subscribed to updates.","errorMessage":"An unidentified problem occurred during the action you took. Please try again later.","errorHeader":"Error - Action Failed"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeInformationWidget-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeInformationWidget-1741624997000","value":{"WidgetTitle":"About {title}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/RelatedContentWidget-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/RelatedContentWidget-1741624997000","value":{"title":"Related Content","emptyDescription":"No content to show"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1741624997000","value":{"title@userScope:other":"Recent Content","title@userScope:self":"Contributions","title@board:FORUM@userScope:other":"Recent Discussions","title@board:BLOG@userScope:other":"Recent Blogs","emptyDescription":"No content to show","MessageListForNodeByRecentActivityWidgetEditor.nodeScope.label":"Scope","title@instance:1718368859225":"Latest Ideas","title@instance:1722595940498":"Recent Content","title@instance:1722595986884":"Recent Content","title@instance:GhAQBO":"Recent Content","title@instance:bjQalH":"Recent Content","title@instance:1728316868378":"Posts & Replies"},"localOverride":false},"Category:category:101001000":{"__typename":"Category","id":"category:101001000","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"CATEGORY","displayId":"101001000","nodeType":"category","depth":2,"title":"Help","shortTitle":"Help"},"Idea:board:101002013":{"__typename":"Idea","id":"board:101002013","boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"ideaPolicies":{"__typename":"IdeaPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:101004000":{"__typename":"Category","id":"category:101004000","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101003016":{"__typename":"Forum","id":"board:101003016","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101007C1":{"__typename":"Forum","id":"board:101007C1","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101001012":{"__typename":"Forum","id":"board:101001012","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101001013":{"__typename":"Forum","id":"board:101001013","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101001014":{"__typename":"Forum","id":"board:101001014","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"FORUM","displayId":"101001014","nodeType":"board","depth":3,"conversationStyle":"FORUM","title":"Create, upload, and share","shortTitle":"Create, upload, and share","parent":{"__ref":"Category:category:101001000"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":null,"description":"Find help to solve issues with creating, uploading, and sharing files and folders in Dropbox. Get support and advice from the Dropbox Community.","eventPath":"category:101001000/category:English/community:mxpez29397board:101001014/"},"Forum:board:101001015":{"__typename":"Forum","id":"board:101001015","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"FORUM","displayId":"101001015","nodeType":"board","depth":3,"conversationStyle":"FORUM","title":"Storage Space","shortTitle":"Storage Space","parent":{"__ref":"Category:category:101001000"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":null,"description":"Looking for help with managing the storage space in your Dropbox account? Talk to the Dropbox Community and get advice from members.","eventPath":"category:101001000/category:English/community:mxpez29397board:101001015/"},"Forum:board:101001016":{"__typename":"Forum","id":"board:101001016","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"FORUM","displayId":"101001016","nodeType":"board","depth":3,"conversationStyle":"FORUM","title":"Apps and Installations","shortTitle":"Apps and Installations","parent":{"__ref":"Category:category:101001000"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":null,"description":"Have a question about a Dropbox app or installation? Reach out to the Dropbox Community and get solutions, help, and advice from members.","eventPath":"category:101001000/category:English/community:mxpez29397board:101001016/"},"Forum:board:101001017":{"__typename":"Forum","id":"board:101001017","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101001018":{"__typename":"Forum","id":"board:101001018","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101001019":{"__typename":"Forum","id":"board:101001019","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Forum:board:101001020":{"__typename":"Forum","id":"board:101001020","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"GroupHub:grouphub:Photography":{"__typename":"GroupHub","id":"grouphub:Photography","grouphubPolicies":{"__typename":"GroupHubPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"GroupHub:grouphub:Music":{"__typename":"GroupHub","id":"grouphub:Music","grouphubPolicies":{"__typename":"GroupHubPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:101010":{"__typename":"Category","id":"category:101010","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"GroupHub:grouphub:1007":{"__typename":"GroupHub","id":"grouphub:1007","grouphubPolicies":{"__typename":"GroupHubPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"GroupHub:grouphub:1010":{"__typename":"GroupHub","id":"grouphub:1010","grouphubPolicies":{"__typename":"GroupHubPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"GroupHub:grouphub:1009":{"__typename":"GroupHub","id":"grouphub:1009","grouphubPolicies":{"__typename":"GroupHubPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"GroupHub:grouphub:1012":{"__typename":"GroupHub","id":"grouphub:1012","grouphubPolicies":{"__typename":"GroupHubPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Conversation:conversation:787563":{"__typename":"Conversation","id":"conversation:787563","topic":{"__typename":"ForumTopicMessage","uid":787563},"lastPostingActivityTime":"2025-03-20T04:23:52.933-07:00","solved":false},"ForumTopicMessage:message:787563":{"__typename":"ForumTopicMessage","subject":"Consistent 500 error, no status text, from files_download_zip_to_file","conversation":{"__ref":"Conversation:conversation:787563"},"id":"message:787563","revisionNum":1,"uid":787563,"depth":0,"board":{"__ref":"Forum:board:101000042"},"author":{"__typename":"User","uid":1861617,"login":"Simma","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-9.svg?time=0"}},"metrics":{"__typename":"MessageMetrics","views":934},"postTime":"2024-08-07T12:39:15.860-07:00","lastPublishTime":"2024-08-07T12:39:15.860-07:00","readOnly":false},"Conversation:conversation:826472":{"__typename":"Conversation","id":"conversation:826472","topic":{"__typename":"ForumTopicMessage","uid":826472},"lastPostingActivityTime":"2025-03-17T11:11:15.615-07:00","solved":false},"ForumTopicMessage:message:826472":{"__typename":"ForumTopicMessage","subject":"Async Sharing Job Runs Forever","conversation":{"__ref":"Conversation:conversation:826472"},"id":"message:826472","revisionNum":1,"uid":826472,"depth":0,"board":{"__ref":"Forum:board:101000042"},"author":{"__typename":"User","uid":1851496,"login":"t0mmy","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-6.svg?time=0"}},"metrics":{"__typename":"MessageMetrics","views":53},"postTime":"2025-03-13T20:13:46.246-07:00","lastPublishTime":"2025-03-13T20:13:46.246-07:00","readOnly":false},"Conversation:conversation:824529":{"__typename":"Conversation","id":"conversation:824529","topic":{"__typename":"ForumTopicMessage","uid":824529},"lastPostingActivityTime":"2025-03-03T11:23:15.219-08:00","solved":false},"ForumTopicMessage:message:824529":{"__typename":"ForumTopicMessage","subject":"Webhook not triggering","conversation":{"__ref":"Conversation:conversation:824529"},"id":"message:824529","revisionNum":1,"uid":824529,"depth":0,"board":{"__ref":"Forum:board:101000042"},"author":{"__typename":"User","uid":1905180,"login":"mattsim23","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-10.svg?time=0"}},"metrics":{"__typename":"MessageMetrics","views":56},"postTime":"2025-03-01T14:24:44.991-08:00","lastPublishTime":"2025-03-01T14:24:44.991-08:00","readOnly":false},"Conversation:conversation:823855":{"__typename":"Conversation","id":"conversation:823855","topic":{"__typename":"ForumTopicMessage","uid":823855},"lastPostingActivityTime":"2025-02-26T09:28:35.587-08:00","solved":false},"ForumTopicMessage:message:823855":{"__typename":"ForumTopicMessage","subject":"Mobile App Integration Just For Displaying Files","conversation":{"__ref":"Conversation:conversation:823855"},"id":"message:823855","revisionNum":1,"uid":823855,"depth":0,"board":{"__ref":"Forum:board:101000042"},"author":{"__typename":"User","uid":1904434,"login":"muratzeuz","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-10.svg?time=0"}},"metrics":{"__typename":"MessageMetrics","views":47},"postTime":"2025-02-25T00:49:05.401-08:00","lastPublishTime":"2025-02-25T00:49:05.401-08:00","readOnly":false},"Conversation:conversation:822468":{"__typename":"Conversation","id":"conversation:822468","topic":{"__typename":"ForumTopicMessage","uid":822468},"lastPostingActivityTime":"2025-02-24T11:56:14.277-08:00","solved":true},"ForumTopicMessage:message:822468":{"__typename":"ForumTopicMessage","subject":"Can't Find Files in Ruby dropbox_api","conversation":{"__ref":"Conversation:conversation:822468"},"id":"message:822468","revisionNum":1,"uid":822468,"depth":0,"board":{"__ref":"Forum:board:101000042"},"author":{"__typename":"User","uid":269712,"login":"Rich F.5","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-11.svg?time=0"}},"metrics":{"__typename":"MessageMetrics","views":121},"postTime":"2025-02-15T08:58:00.156-08:00","lastPublishTime":"2025-02-15T08:58:00.156-08:00","readOnly":false},"Rank:rank:44":{"__typename":"Rank","id":"rank:44","position":27,"name":"Helpful | Level 5","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:1853990":{"__typename":"User","id":"user:1853990","uid":1853990,"login":"rbkeep","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2024-07-09T10:31:49.146-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-12.svg?time=0"},"rank":{"__ref":"Rank:rank:44"},"messagesCount":5,"kudosGivenCount":0,"kudosReceivedCount":4,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:mxpez29397/user:1853990"},"ForumTopicMessage:message:782184":{"__typename":"ForumTopicMessage","uid":782184,"subject":"When I try to upload content using the website, nothing happens.","id":"message:782184","revisionNum":2,"repliesCount":9,"author":{"__ref":"User:user:1853990"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:101001014"},"conversation":{"__ref":"Conversation:conversation:782184"},"moderationData":{"__ref":"ModerationData:moderation_data:782184"},"postTime":"2024-07-09T10:37:08.108-07:00","lastPublishTime":"2024-07-09T10:45:23.831-07:00","readOnly":true,"metrics":{"__typename":"MessageMetrics","views":59907},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:101001000/category:English/community:mxpez29397board:101001014/message:782184"},"Conversation:conversation:782184":{"__typename":"Conversation","id":"conversation:782184","solved":true,"topic":{"__ref":"ForumTopicMessage:message:782184"},"lastPostingActivityTime":"2024-11-10T22:28:25.160-08:00","lastPostTime":"2024-11-10T22:28:25.160-08:00"},"ModerationData:moderation_data:782184":{"__typename":"ModerationData","id":"moderation_data:782184","status":"UNMODERATED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:782184":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:782184","relatedMessage":{"__ref":"ForumTopicMessage:message:782184"}},"User:user:544257":{"__typename":"User","id":"user:544257","uid":544257,"login":"onnokramer","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2017-11-14T23:15:24.680-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/images/dS01NDQyNTctbks5Z1hB?image-coordinates=504%2C0%2C3528%2C3024"},"rank":{"__ref":"Rank:rank:43"},"messagesCount":5,"kudosGivenCount":0,"kudosReceivedCount":2,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":1,"entityType":"USER","eventPath":"community:mxpez29397/user:544257"},"ForumTopicMessage:message:615784":{"__typename":"ForumTopicMessage","uid":615784,"subject":"Storage space does not match the actual used space?","id":"message:615784","revisionNum":2,"repliesCount":11,"author":{"__ref":"User:user:544257"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:101001015"},"conversation":{"__ref":"Conversation:conversation:615784"},"moderationData":{"__ref":"ModerationData:moderation_data:615784"},"postTime":"2022-08-13T09:33:09.277-07:00","lastPublishTime":"2022-08-15T07:19:13.519-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":2312},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:101001000/category:English/community:mxpez29397board:101001015/message:615784"},"Conversation:conversation:615784":{"__typename":"Conversation","id":"conversation:615784","solved":true,"topic":{"__ref":"ForumTopicMessage:message:615784"},"lastPostingActivityTime":"2023-10-30T03:18:18.915-07:00","lastPostTime":"2023-10-30T03:18:18.915-07:00"},"ModerationData:moderation_data:615784":{"__typename":"ModerationData","id":"moderation_data:615784","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:615784":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:615784","relatedMessage":{"__ref":"ForumTopicMessage:message:615784"}},"Rank:rank:46":{"__typename":"Rank","id":"rank:46","position":29,"name":"Explorer | Level 3","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:1740427":{"__typename":"User","id":"user:1740427","uid":1740427,"login":"peter ashworth","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2023-08-29T05:38:47.915-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-4.svg?time=0"},"rank":{"__ref":"Rank:rank:46"},"messagesCount":8,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:mxpez29397/user:1740427"},"ForumTopicMessage:message:710038":{"__typename":"ForumTopicMessage","uid":710038,"subject":"why is Dropbox showing me using 5.3Gb when i am actually only using 736Mb?","id":"message:710038","revisionNum":1,"repliesCount":8,"author":{"__ref":"User:user:1740427"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:101001015"},"conversation":{"__ref":"Conversation:conversation:710038"},"moderationData":{"__ref":"ModerationData:moderation_data:710038"},"postTime":"2023-08-29T05:45:47.944-07:00","lastPublishTime":"2023-08-29T05:45:47.944-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1298},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:101001000/category:English/community:mxpez29397board:101001015/message:710038"},"Conversation:conversation:710038":{"__typename":"Conversation","id":"conversation:710038","solved":true,"topic":{"__ref":"ForumTopicMessage:message:710038"},"lastPostingActivityTime":"2023-08-29T09:57:57.373-07:00","lastPostTime":"2023-08-29T09:57:57.373-07:00"},"ModerationData:moderation_data:710038":{"__typename":"ModerationData","id":"moderation_data:710038","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:710038":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:710038","relatedMessage":{"__ref":"ForumTopicMessage:message:710038"}},"Rank:rank:42":{"__typename":"Rank","id":"rank:42","position":25,"name":"Helpful | Level 7","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:266575":{"__typename":"User","id":"user:266575","uid":266575,"login":"Darryl G.3","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2015-06-18T00:56:00.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-4.svg?time=0"},"rank":{"__ref":"Rank:rank:42"},"messagesCount":21,"kudosGivenCount":2,"kudosReceivedCount":7,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:mxpez29397/user:266575"},"ForumTopicMessage:message:740464":{"__typename":"ForumTopicMessage","uid":740464,"subject":"Dropbox claims I'm using 9.76 GB of 10.63 GB, but I only actually am using 1GB.","id":"message:740464","revisionNum":1,"repliesCount":2,"author":{"__ref":"User:user:266575"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:101001015"},"conversation":{"__ref":"Conversation:conversation:740464"},"moderationData":{"__ref":"ModerationData:moderation_data:740464"},"postTime":"2024-01-02T16:10:50.194-08:00","lastPublishTime":"2024-01-02T16:10:50.194-08:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1029},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:101001000/category:English/community:mxpez29397board:101001015/message:740464"},"Conversation:conversation:740464":{"__typename":"Conversation","id":"conversation:740464","solved":true,"topic":{"__ref":"ForumTopicMessage:message:740464"},"lastPostingActivityTime":"2024-01-04T19:12:44.808-08:00","lastPostTime":"2024-01-04T19:12:44.808-08:00"},"ModerationData:moderation_data:740464":{"__typename":"ModerationData","id":"moderation_data:740464","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:740464":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:740464","relatedMessage":{"__ref":"ForumTopicMessage:message:740464"}},"User:user:1220072":{"__typename":"User","id":"user:1220072","uid":1220072,"login":"jakryk","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-10-16T17:31:35.800-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":null},"rank":{"__ref":"Rank:rank:44"},"messagesCount":4,"kudosGivenCount":0,"kudosReceivedCount":5,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:mxpez29397/user:1220072"},"ForumTopicMessage:message:372093":{"__typename":"ForumTopicMessage","uid":372093,"subject":"Actual Desktop app won't open","id":"message:372093","revisionNum":3,"repliesCount":22,"author":{"__ref":"User:user:1220072"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:101001016"},"conversation":{"__ref":"Conversation:conversation:372093"},"moderationData":{"__ref":"ModerationData:moderation_data:372093"},"postTime":"2019-10-16T17:37:48.580-07:00","lastPublishTime":"2022-07-26T06:18:11.101-07:00","readOnly":true,"metrics":{"__typename":"MessageMetrics","views":33739},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:101001000/category:English/community:mxpez29397board:101001016/message:372093"},"Conversation:conversation:372093":{"__typename":"Conversation","id":"conversation:372093","solved":true,"topic":{"__ref":"ForumTopicMessage:message:372093"},"lastPostingActivityTime":"2022-07-26T06:18:11.101-07:00","lastPostTime":"2020-02-07T12:21:23.307-08:00"},"ModerationData:moderation_data:372093":{"__typename":"ModerationData","id":"moderation_data:372093","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:372093":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:372093","relatedMessage":{"__ref":"ForumTopicMessage:message:372093"}},"QueryVariables:TopicReplyList:message:555797:3":{"__typename":"QueryVariables","id":"TopicReplyList:message:555797:3","value":{"id":"message:555797","first":10,"sorts":{"postTime":{"direction":"ASC"}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"postTime":{"direction":"ASC"}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":true,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":true,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:text:en_US-components/community/Navbar-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1741624997000","value":{"1007":"Business Team Members","101007":"Discover","101010":"Groups","101000041":"Developer & API","101001000":"Help","101001012":"View, download, and export","101001013":"Delete, edit, and organize","101001014":"Create, upload, and share","101001015":"Storage Space","101001016":"Apps and Installations","101001017":"Integrations","101001018":"Plans and Subscriptions","101001019":"Settings and Preferences","101001020":"Security and Permissions","101002013":"Ideas","101003016":"Desktop client builds","102001000":"Poser une question","community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content","migrated-link-9":"日本語","external-1":"Languages","german":"Deutsch","102009-g1":"Nouvel utilisateur","migrated-link-7":"Español","migrated-link-8":"Português","1007-link":"Business Team Members","Common_vyFqRl-107009-g1-link":"始める","migrated-link-1":"Discover","migrated-link-2":"Ideas","migrated-link-0":"Help","migrated-link-5":"Français","migrated-link-6":"Deutsch","dropbox-ai":"Dropbox AI","migrated-link-3":"Groups","migrated-link-4":"🌎","photographers":"Photographers","group-hub-test":"Group Hub Test","1010-link":"Dropbox for Beginners","japanese":"日本語","Common_sMrFGY-104009-g1-link":"Primeros pasos","english":"English","multiple-sections-group":"Multiple Sections Group","french":"Français","music-link":"Musicians","plans-and-subscriptions":"Plans and Subscriptions","tips-and-tricks":"Tips & Tricks","dropbox-dash-link":"Dropbox Dash","dropboxfor-mac-o-s12-link":"Dropbox for macOS","Common_iAojxi-german-link":"Deutsche Community","delete-edit-organize":"Delete, edit, and organize","mxpez29397":"Languages","secret-hidden-group":"Secret Hidden Group","external":"↗ Learn","view-download-and-export":"View, download, and export","integrations":"Integrations","Common_iAojxi-103001000-link":"Eine Frage stellen","Common_sMrFGY-spanish-link":"Comunidad española","security-and-permissions-1":"Settings and Preferences","1012-link":"Dropbox/Microsoft Co-Authoring Beta","musicians":"Musicians","security-and-permissions":"Security and Permissions","do-more-with-dropbox":"Do more with Dropbox","1009-link":"Dropbox Replay","create-upload-share":"Create, upload, and share","Common_vyFqRl-japanese-link":"日本人コミュニティ","Common_eXiQWm-105009-g1-link":"Introdução","migrated-link-12":"↗ Help Center","developer-and-api":"Developer & API","migrated-link-13":"↗ Contact Support","Common_tzjwoh-102009-g1-link":"Nouvel utilisateur","closed-group-test":"Closed Group Test","Common_vyFqRl-107001000-link":"質問する","closed-gourp":"Closed Group","dropbox-dash-beta":"Dropbox Dash Beta","portuguese":"Português","storage-space":"Storage Space","spanish":"Español","Common_eXiQWm-portuguese-link":"Comunidade Portuguesa","test-open-group":"Open Group","apps-and-installations":"Apps and Installations","migrated-link-10":"About the Community","test-group":"Test Group","dropboxfor-mac-o-s12":"Dropbox for MacOS","migrated-link-11":"↗ Dropbox","Common_tzjwoh-102001000-link":"Poser une question","Common_iAojxi-103009-g1-link":"Erste Schritte","Common_tzjwoh-french-link":"Communauté française","intl":"Languages","desktop-client-builds":"Desktop client builds","dropbox-for-macos":"Dropbox for macOS","photography-link":"Photographers","Common_eXiQWm-105001000-link":"Faça uma pergunta","super-user-link":"Super User","Common_sMrFGY-104001000-link":"Haz una pregunta","101007-c1":"Tips & tricks"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1741624997000","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1741624997000","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1741624997000","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/languages/UseLanguageText-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/languages/UseLanguageText-1741624997000","value":{"UseLanguageText.language.ar-AE.label":"Arabic","UseLanguageText.language.bg-BG.label":"Bulgarian","UseLanguageText.language.ca-AD.label":"Catalan","UseLanguageText.language.cs-CZ.label":"Czech","UseLanguageText.language.da-DK.label":"Danish","UseLanguageText.language.de-DE.label":"German","UseLanguageText.language.el-GR.label":"Greek","UseLanguageText.language.en-GB.label":"English (UK)","UseLanguageText.language.en-US.label":"English (US)","UseLanguageText.language.es-ES.label":"Spanish","UseLanguageText.language.es-MX.label":"Spanish (Mexican)","UseLanguageText.language.et-EE.label":"Estonian","UseLanguageText.language.fa-IR.label":"Persian (Farsi)","UseLanguageText.language.fi-FI.label":"Finnish","UseLanguageText.language.fr-FR.label":"French","UseLanguageText.language.he-IL.label":"Hebrew (modern)","UseLanguageText.language.hr-HR.label":"Croatian","UseLanguageText.language.hu-HU.label":"Hungarian","UseLanguageText.language.in-ID.label":"Indonesian","UseLanguageText.language.it-IT.label":"Italian","UseLanguageText.language.ja-JP.label":"Japanese","UseLanguageText.language.ko-KR.label":"Korean","UseLanguageText.language.lt-LT.label":"Lithuanian","UseLanguageText.language.lv-LV.label":"Latvian","UseLanguageText.language.ms-MY.label":"Malay","UseLanguageText.language.nl-NL.label":"Dutch","UseLanguageText.language.no-NO.label":"Norwegian","UseLanguageText.language.pl-PL.label":"Polish","UseLanguageText.language.pt-BR.label":"Portuguese (Brazilian)","UseLanguageText.language.pt-PT.label":"Portuguese","UseLanguageText.language.ro-RO.label":"Romanian","UseLanguageText.language.ru-RU.label":"Russian","UseLanguageText.language.sk-SK.label":"Slovak","UseLanguageText.language.sq-AL.label":"Albanian","UseLanguageText.language.sv-SE.label":"Swedish","UseLanguageText.language.th-TH.label":"Thai","UseLanguageText.language.tr-TR.label":"Turkish","UseLanguageText.language.uk-UA.label":"Ukrainian","UseLanguageText.language.vi-VN.label":"Vietnamese","UseLanguageText.language.zh-CN.label":"Chinese (Simplified)","UseLanguageText.language.zh-TW.label":"Chinese (Traditional)"},"localOverride":false},"CachedAsset:text:en_US-components/languages/LanguagePicker-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/languages/LanguagePicker-1741624997000","value":{"dropdown.title":"Language selector","selected.language":"Currently selected language","toast.successMessage":"Go to the {newLanguage} community Switch back to {oldLanguage}","toast.successTitle":"Language Changed to {language}","toast.failureTitle":"Error - Action Failed","toast.failureMessage":"An unidentified problem occurred during the action you took. Please try again later."},"localOverride":false},"CachedAsset:text:en_US-components/search/SpotlightSearchIcon-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/search/SpotlightSearchIcon-1741624997000","value":{"search":"Search"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1741624997000","value":{"title.login":"Log in","title.registration":"Sign up","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Log in"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLink-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1741624997000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1741624997000","value":{"anonymous":"Anonymous","author":"{messageAuthorLogin}","authorBy":"{messageAuthorLogin}","board":"{messageBoardTitle}","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solved","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1741624997000","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1741624997000","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1741624997000","value":{"title":"Query Handler"},"localOverride":false},"Category:category:German":{"__typename":"Category","id":"category:German","displayId":"German"},"Category:category:Portuguese":{"__typename":"Category","id":"category:Portuguese","displayId":"Portuguese"},"Category:category:Spanish":{"__typename":"Category","id":"category:Spanish","displayId":"Spanish"},"Category:category:French":{"__typename":"Category","id":"category:French","displayId":"French"},"Category:category:Japanese":{"__typename":"Category","id":"category:Japanese","displayId":"Japanese"},"ModerationData:moderation_data:556021":{"__typename":"ModerationData","id":"moderation_data:556021","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AssociatedImage:{\"url\":\"https://www.dropboxforum.com/t5/s/mxpez29397/images/cmstMjYtZVNRZzFo\"}":{"__typename":"AssociatedImage","url":"https://www.dropboxforum.com/t5/s/mxpez29397/images/cmstMjYtZVNRZzFo","height":17,"width":20,"mimeType":"image/png"},"Rank:rank:26":{"__typename":"Rank","id":"rank:26","position":5,"name":"Dropbox Staff","color":"0061FE","icon":{"__ref":"AssociatedImage:{\"url\":\"https://www.dropboxforum.com/t5/s/mxpez29397/images/cmstMjYtZVNRZzFo\"}"},"rankStyle":"TEXT"},"User:user:10":{"__typename":"User","id":"user:10","uid":10,"login":"Greg-DB","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2014-12-03T16:28:00.000-08:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/images/dS0xMC01NjQ2aTEzQjZFMUNBREJENDE1Q0Y"},"rank":{"__ref":"Rank:rank:26"},"entityType":"USER","eventPath":"community:mxpez29397/user:10"},"ForumReplyMessage:message:556021":{"__typename":"ForumReplyMessage","uid":556021,"id":"message:556021","revisionNum":1,"author":{"__ref":"User:user:1490369"},"readOnly":false,"repliesCount":2,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:101000042"},"parent":{"__ref":"ForumTopicMessage:message:555797"},"conversation":{"__ref":"Conversation:conversation:555797"},"subject":"Re: An actually USEFUL guide on uploading large files via API","moderationData":{"__ref":"ModerationData:moderation_data:556021"},"body":"
There was actually more of this guide at the end regarding writing a script, but the site incorrectly claimed my post was over 30000 characters so I had to truncate it (it was actually less than 25000, but maybe they could tell more than half of it was dad jokes and snark and that counted against me). Then the post got marked as spam for a while and my irritation reached a level that made it impossible to care or invest any more effort into this.
The mods un-spamiffied it after I made a rage filled post about it (the \"report\" feature was useless, but a hateful post DID seem to help), but I'm too emotionally drained from this whole rollercoaster to expend any further effort.
If the guide helps someone have less frustration than I did, I'm happy something good came of it.
There was actually more of this guide at the end regarding writing a script, but the site incorrectly claimed my post was over 30000 characters so I had to truncate it (it was actually less than 25000, but maybe they could tell more than half of it was dad jokes and snark and that counted against me). Then the post got marked as spam for a while and my irritation reached a level that made it impossible to care or invest any more effort into this.
The mods un-spamiffied it after I made a rage filled post about it (the \"report\" feature was useless, but a hateful post DID seem to help), but I'm too emotionally drained from this whole rollercoaster to expend any further effort.
If the guide helps someone have less frustration than I did, I'm happy something good came of it.
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:556021_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"ModerationData:moderation_data:556089":{"__typename":"ModerationData","id":"moderation_data:556089","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:556089":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:10"},"id":"message:556089","revisionNum":1,"uid":556089,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:101000042"},"parent":{"__ref":"ForumReplyMessage:message:556021"},"conversation":{"__ref":"Conversation:conversation:555797"},"subject":"Re: An actually USEFUL guide on uploading large files via API","moderationData":{"__ref":"ModerationData:moderation_data:556089"},"body":"
Thanks for taking the time to share your experience and write up and post this guide. I hope it can be of use to others here.
Thanks for taking the time to share your experience and write up and post this guide. I hope it can be of use to others here.
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:556089_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"Rank:rank:47":{"__typename":"Rank","id":"rank:47","position":30,"name":"New member | Level 2","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:1742394":{"__typename":"User","id":"user:1742394","uid":1742394,"login":"fabianbitter","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2023-09-05T02:21:50.004-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-5.svg?time=0"},"rank":{"__ref":"Rank:rank:47"},"entityType":"USER","eventPath":"community:mxpez29397/user:1742394"},"ModerationData:moderation_data:711536":{"__typename":"ModerationData","id":"moderation_data:711536","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:711536":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:1742394"},"id":"message:711536","revisionNum":1,"uid":711536,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:101000042"},"parent":{"__ref":"ForumReplyMessage:message:556021"},"conversation":{"__ref":"Conversation:conversation:555797"},"subject":"Re: An actually USEFUL guide on uploading large files via API","moderationData":{"__ref":"ModerationData:moderation_data:711536"},"body":"
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:711536_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"User:user:1776565":{"__typename":"User","id":"user:1776565","uid":1776565,"login":"Cheesefondue","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2023-12-02T09:55:20.072-08:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-7.svg?time=0"},"rank":{"__ref":"Rank:rank:47"},"entityType":"USER","eventPath":"community:mxpez29397/user:1776565"},"ModerationData:moderation_data:734070":{"__typename":"ModerationData","id":"moderation_data:734070","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:734070":{"__typename":"ForumReplyMessage","uid":734070,"id":"message:734070","revisionNum":1,"author":{"__ref":"User:user:1776565"},"readOnly":false,"repliesCount":1,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:101000042"},"parent":{"__ref":"ForumTopicMessage:message:555797"},"conversation":{"__ref":"Conversation:conversation:555797"},"subject":"Re: An actually USEFUL guide on uploading large files via API","moderationData":{"__ref":"ModerationData:moderation_data:734070"},"body":"
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:734070_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"ModerationData:moderation_data:734071":{"__typename":"ModerationData","id":"moderation_data:734071","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:734071":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:1490369"},"id":"message:734071","revisionNum":1,"uid":734071,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:101000042"},"parent":{"__ref":"ForumReplyMessage:message:734070"},"conversation":{"__ref":"Conversation:conversation:555797"},"subject":"Re: An actually USEFUL guide on uploading large files via API","moderationData":{"__ref":"ModerationData:moderation_data:734071"},"body":"Thanks for telling me, buddy! Glad I could help at least one person, makes it all worthwhile. 🙂","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"96","kudosSumWeight":0,"repliesCount":0,"postTime":"2023-12-02T10:09:42.964-08:00","lastPublishTime":"2023-12-02T10:09:42.964-08:00","metrics":{"__typename":"MessageMetrics","views":3803},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:101000041/category:101007/category:English/community:mxpez29397board:101000042/message:555797/message:734071","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"readOnly":false,"editFrozen":false,"body@stringLength":"167","rawBody":"Thanks for telling me, buddy! Glad I could help at least one person, makes it all worthwhile. 🙂","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:734071_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"Rank:rank:48":{"__typename":"Rank","id":"rank:48","position":31,"name":"New member | Level 1","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:1903302":{"__typename":"User","id":"user:1903302","uid":1903302,"login":"Rodrigo Zarate","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2025-02-17T19:59:19.229-08:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://www.dropboxforum.com/t5/s/mxpez29397/m_assets/avatars/default/avatar-9.svg?time=0"},"rank":{"__ref":"Rank:rank:48"},"entityType":"USER","eventPath":"community:mxpez29397/user:1903302"},"ModerationData:moderation_data:822811":{"__typename":"ModerationData","id":"moderation_data:822811","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:822811":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:1903302"},"id":"message:822811","revisionNum":1,"uid":822811,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:101000042"},"parent":{"__ref":"ForumTopicMessage:message:555797"},"conversation":{"__ref":"Conversation:conversation:555797"},"subject":"Re: An actually USEFUL guide on uploading large files via API","moderationData":{"__ref":"ModerationData:moderation_data:822811"},"body":"
Thank you very much for this guide.
I have to admit that enjoyed the dad jokes too.
4 years later the issues and lack of useful documentation persists.
I have to use Powershell to create the scripts because we are trying to get back to life some dinosaurs. It was painful, awful, and bad...
Escaping JSON for Powershell is a nightmare.
I may write a guide too, maybe someone need back to life some dinosaurs too.
4 years later the issues and lack of useful documentation persists.
I have to use Powershell to create the scripts because we are trying to get back to life some dinosaurs. It was painful, awful, and bad...
Escaping JSON for Powershell is a nightmare.
I may write a guide too, maybe someone need back to life some dinosaurs too.
","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"timeToRead":1,"currentRevision":{"__ref":"Revision:revision:822811_1"},"latestVersion":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}}},"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarDropdownToggle-1741624997000","value":{"ariaLabelClosed":"Press the down arrow to open the menu"},"localOverride":false},"CachedAsset:text:en_US-components/customComponent/CustomComponent-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/customComponent/CustomComponent-1741624997000","value":{"errorMessage":"Error rendering component id: {customComponentId}","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/EscalatedMessageBanner-1741624997000","value":{"escalationMessage":"Escalated to Salesforce by {username} on {date}","viewDetails":"View Details","modalTitle":"Case Details","escalatedBy":"Escalated by: ","escalatedOn":"Escalated on: ","caseNumber":"Case Number: ","status":"Status: ","lastUpdateDate":"Last Update: ","automaticEscalation":"automatic escalation","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1741624997000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1741624997000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1741624997000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolvedBadge-1741624997000","value":{"solved":"Solved"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1741624997000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1741624997000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1741624997000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1741624997000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/AcceptedSolutionButton-1741624997000","value":{"accept":"Mark as Solution","accepted":"Marked as Solution","errorHeader":"Error!","errorAdd":"There was an error marking as solution.","errorRemove":"There was an error unmarking as solution.","solved":"Solved","topicAlreadySolvedErrorTitle":"Solution Already Exists","topicAlreadySolvedErrorDesc":"Refresh the browser to view the existing solution"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMore-1741624997000","value":{"loadMore":"Show More"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeView/NodeViewCard-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeView/NodeViewCard-1741624997000","value":{"title":"{nodeTitle} ","creationDate":"Created: {creationDate}","ownedBy":"Owned by: {owners}{text}","showOwnerListText":", and {ownersCount} more","unreadCount":"{count} unread","nodeViewDrawerBtn":"Node view drawer for {place}","drawerActionTooltip":"Show category children"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewInline-1741624997000","value":{"bylineAuthor":"{bylineAuthor}","bylineBoard":"{bylineBoard}","anonymous":"Anonymous","place":"Place {bylineBoard}","gotoParent":"Go to parent {name}"},"localOverride":false},"Revision:revision:556089_1":{"__typename":"Revision","id":"revision:556089_1","lastEditTime":"2021-11-08T10:51:16.336-08:00"},"Revision:revision:822811_1":{"__typename":"Revision","id":"revision:822811_1","lastEditTime":"2025-02-17T20:05:33.750-08:00"},"Revision:revision:734071_1":{"__typename":"Revision","id":"revision:734071_1","lastEditTime":"2023-12-02T10:09:42.964-08:00"},"Revision:revision:711536_1":{"__typename":"Revision","id":"revision:711536_1","lastEditTime":"2023-09-05T02:22:52.590-07:00"},"Revision:revision:734070_1":{"__typename":"Revision","id":"revision:734070_1","lastEditTime":"2023-12-02T09:56:20.404-08:00"},"Revision:revision:556021_1":{"__typename":"Revision","id":"revision:556021_1","lastEditTime":"2021-11-08T08:40:13.276-08:00"},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1741624997000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1741624997000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeAvatar-1741624997000","value":{"altTitle":"Node avatar for {nodeTitle}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeDescription-1741624997000","value":{"description":"{description}"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeTopicsCount-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeTopicsCount-1741624997000","value":{"topicCount":"{count}","topicCountWithNeutralLabel@board:OCCASION":"{count, plural, one{# Event} other{# Events}}","topicCountWithNeutralLabel":"{count, plural, one{# Post} other{# Posts}}","topicCount@board:FORUM":"{count, plural, one{# Post} other{# Posts}}","topicCount@board:BLOG":"{count, plural, one{# Post} other{# Posts}}","topicCount@board:CONTEST":"{count, plural, one{# Entry} other{# Entries}}","topicCount@board:GROUP":"{count, plural, one{# Topic} other{# Topics}}","topicCount@board:IDEA":"{count, plural, one{# Idea} other{# Ideas}}","topicCount@board:QANDA":"{count, plural, one{# Question} other{# Questions}}","topicCount@board:TKB":"{count, plural, one{# Article} other{# Articles}}","topicCount@board:OCCASION":"{count, plural, one{# Event} other{# Events}}","title":"{count, plural,one {Post} other{Posts}}"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLatestActivityTime-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLatestActivityTime-1741624997000","value":{"title":"Latest Activity: {latestActivityTime}","updatedAt":"Updated {latestActivityTime}","noActivity":"No activity yet"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeFollowersCount-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeFollowersCount-1741624997000","value":{"followersCount":"{count} Following"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1741624997000","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1741624997000":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1741624997000","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"101000042","messageSubject":"an-actually-useful-guide-on-uploading-large-files-via-api","messageId":"555797"},"buildId":"Btkyb7T6TeYM9D2gUmiOv","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"dropbox","openTelemetryServiceVersion":"25.2.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/seo/QAPageSchema/QAPageSchema.tsx","./components/community/Navbar/NavbarWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/messages/TopicWithThreadedReplyListWidget/TopicWithThreadedReplyListWidget.tsx","./components/nodes/NodeActionButtonWidget/NodeActionButtonWidget.tsx","./components/nodes/NodeInformationWidget/NodeInformationWidget.tsx","./components/messages/RelatedContentWidget/RelatedContentWidget.tsx","./components/messages/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","./components/customComponent/CustomComponentContent/HtmlContent.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx","./components/nodes/NodeView/NodeView.tsx","./components/nodes/NodeView/NodeViewCard/NodeViewCard.tsx","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx","./components/customComponent/CustomComponentContent/CustomComponentScripts.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx"],"appGip":true,"scriptLoader":[]}