Live data from Hacker News

Using the Dropbox Datastore API in Python

dropbox.com

11–20 of 26 posts

Re: Using the Dropbox Datastore API in Python

#11
post #9
post #7

Earlier quoted context omitted.

Are dropbox front-end and apis built with Python at first place?

I'm not sure I understand the question. Dropbox uses Python heavily both server-side and client-side. Does that help?

Sure , i was talking about the website users and api clients "see" , as opposed to "back-end" , ie , all the infrastructure used to manage files,ect...

Re: Using the Dropbox Datastore API in Python

#12
Any benchmarks? Number insert / second? Num of query / second?

What are the limit on number of records, number of field (column?) in a table? How many tables can one have?

How often is the commit? Is it commit to local/fs or to the cloud (under what condition)?

How does the datastore sync from different devices works?

Re: Using the Dropbox Datastore API in Python

#13

Any benchmarks? Number insert / second? Num of query / second? What are the limit on number of records, number of field (column?) in a table? How many tables can one have? How often is the commit? Is it commit to local/fs or to the cloud (under what condition)? How does the datastore sync from different devices works?

I don't have benchmarks to share, but the documentation goes over size limits: https://www.dropbox.com/developers/datastore/docs/python

As to the sync model, changes are always made locally and then queued for upload. You might want to read Guido's posts about conflict resolution to understand the model:

https://www.dropbox.com/developers/blog/48/how-the-datastore...

https://www.dropbox.com/developers/blog/56/how-the-dropbox-d...

Re: Using the Dropbox Datastore API in Python

#14

I love the sound of this but remain cautiously optimistic. One thing that immediately comes to mind: How do you prevent the user from breaking their own user experience by deleting folder X or moving file Z? My thought would be to create a locked folder accessible only by APPX and then if the user decides they don't want to use the service any more and revokes permission to APPX the folder gets deleted.

Some see it as their responsibility to give the user a good user experience, even over the wishes of the user himself. Now, we can have a sensible debate over the need to warn a user about unintended consequences, but should we really be building features that act solely to restrict a user?

Re: Using the Dropbox Datastore API in Python

#15
post #10

If I knew Python more I would write a Sublime Text plugin that syncs my settings over Dropbox.

Not a Sublime user, but you can do this with many (most?) apps with simlinks from Dropbox folders into the "~/Library/Application Support" folders of your various OS X devices.

Some apps won't enjoy being open simultaneously, but if you keep this in-mind, this is generally a great solution.

Therefore Dropbox, not a homegrown process, syncs your settings

Re: Using the Dropbox Datastore API in Python

#16
post #13

Any benchmarks? Number insert / second? Num of query / second? What are the limit on number of records, number of field (column?) in a table? How many tables can one have? How often is the commit? Is it commit to local/fs or to the cloud (under what condition)? How does the datastore sync from different devices works?

I don't have benchmarks to share, but the documentation goes over size limits: https://www.dropbox.com/developers/datastore/docs/python As to the sync model, changes are always made locally and then queued for upload. You might want to read Guido's posts about conflict resolution to understand the model: https://www.dropbox.com/developers/blog/48/how-the-datastore... https://www.dropbox.com/developers/blog/56/how-the…

Thx, smarx

Good info!

10MB database limit is too small - somehow I would image dropbox wants app to create hundreds of MB if not GB of data. :-)

Are there any test code available? Open Source / on github?

It is much easier to understand the flow from the test code than API doc. If test code is available, it is easily to morph that info benchmark type code.

Re: Using the Dropbox Datastore API in Python

#18
post #13

Earlier quoted context omitted.

I don't have benchmarks to share, but the documentation goes over size limits: https://www.dropbox.com/developers/datastore/docs/python As to the sync model, changes are always made locally and then queued for upload. You might want to read Guido's posts about conflict resolution to understand the model: https://www.dropbox.com/developers/blog/48/how-the-datastore... https://www.dropbox.com/developers/blog/56/how-the…

Thx, smarx Good info! 10MB database limit is too small - somehow I would image dropbox wants app to create hundreds of MB if not GB of data. :-) Are there any test code available? Open Source / on github? It is much easier to understand the flow from the test code than API doc. If test code is available, it is easily to morph that info benchmark type code.

The Python library is open source, but no, I don't think we have any open source test code.

Keep in mind that file data should go outside of datastores (in files), so the 10MB is for the per-user, per-app structured data. E.g. contacts, app settings, game state, etc. 10MB actually goes a pretty long way there.

Also keep in mind that, at present, all of the SDKs load the entire datastore into memory, so there's a pretty low limit to how big you want a datastore to get. 10MB is a comfortable limit for now.

Re: Using the Dropbox Datastore API in Python

#19
post #17

I wonder whether it's intentional that the tutorial isn't "copy-pastable". Specifically, it does not spell out any of the imports, and uses very large except clauses.

Hi, I wrote the tutorial. :-)

In general, I based the tutorial on the sample app that ships with the SDK. That app uses Flask and presents some actual UI. If you want full working code, I would suggest taking a look at that sample.

The tutorial is basically fragments from that sample that show the basic concepts, but without some boilerplate, the fragments are not themselves runnable.

(BTW, where are the "very large except clauses?")

Re: Using the Dropbox Datastore API in Python

#20

I love the sound of this but remain cautiously optimistic. One thing that immediately comes to mind: How do you prevent the user from breaking their own user experience by deleting folder X or moving file Z? My thought would be to create a locked folder accessible only by APPX and then if the user decides they don't want to use the service any more and revokes permission to APPX the folder gets deleted.

Been playing with the datastore and the data is not visible in the Dropbox folder. I'm sure it's somewhere there buried under a safe blanket. So far only it's data sync limitations are a small annoyance but that can be resolved.
Post reply on HN