
New Dropbox API Features: /delta, /copy_ref, OS X SDK - dwynings
https://www.dropbox.com/developers/announcements/18
======
rubenfonseca
Is it just me or /copy_ref could be used to make an awesome warez site? I
hacked a quick prototype and it seems to work:

\- User authenticates with Dropbox on my web app

\- User sees his/her files and select the ones he/she wants to share

\- Another User searches through the shared files, and by clicking "Download",
and using /copy_ref, the file will appear on his/her Dropbox

I'm still undecided if I should use a full Root Dropbox access or just App
Folder. The later would give users a more security sense, but would require
more effort to share files (move the files to the app directory). What do you
think?

~~~
wladimir
It really looks like the functionality that my Dropship hack offered :-)

Except that it's easier to trace, as the person sharing the file has to give
explicit permission, instead of just giving some anonymous description of the
file. I guess they can use that to punish "wrongdoers".

~~~
rubenfonseca
Thanks Wladimir :) I learned _a lot_ in the process and by reading your source
code!

------
riobard
Now we have /delta to get proper diffs, we only need the Events API to make
awesome Dropbox-based apps. Currently there is no way for Dropbox to notify
your app on a remote server about updates in a user's Dropbox folder. You have
to poll. If you still have votes left, please consider voting for this feature
at <https://www.dropbox.com/votebox/5972/events-api>

------
harryf
Surprised to see it's not idempotent. What if, for whatever reason, the caller
fails to receive the response? Some information on changes is then permanently
lost.

Would have expected to see something like /delta?since=<timestamp_here> but
perhaps that's harder to implement & requires much more data to be logged.

~~~
eurleif
It looks to me like the 'cursor' parameter does that.

~~~
harryf
Ah yes thanks - should have read more carefully.

------
mattiask
Am I the only one that would like to see some kind of locking support in the
API? So if you have multiple clients working against the same file it could
take out a lock for x minutes and the other client could query to see if a
file is locked. Useful for synchronization between clients..

~~~
tseabrooks
We really need this in the API. We do our own version of this that is hacky
and error prone but it's all we have right now. I was a bit amazed initially
that this didn't already exist.

------
jmathai
/delta is great but I've been holding out for an event/webhook API.

------
bprater
I'm surprised we aren't seeing more web apps using Dropbox as the datastore.
Anyone know why?

~~~
johns
Lack of a sync API I'm guessing is a big one. There's no way to guarantee a
file you place in a Dropbox will be there in the future unless you're notified
if it's gone (which you can now do with /delta). Also, storing files isn't
that big of a challenge, it's not like Dropbox is equipping you with a new
skill. There needs to be a very compelling reason to put someone through an
OAuth flow that requires a third-party service subscription for something that
can easily be done transparently on the server or using S3 directly.

I personally don't think it's compelling for everyday file storage, like S3
is. However, I think there are a ton of other possibilities that are very
compelling: data export, save to Dropbox, collaboration and sharing amongst
multiple users, etc.

~~~
bprater
> There needs to be a very compelling reason

For instance, it would be useful to crop an image with the online Pixlr
editor, save it to Dropbox -- and then inside of Wordpress to select the image
to be viewable on my blog.

I guess this option would be most useful when using media with multiple
services.

------
nextstep
I have never used the Dropbox API, but I'm surprised that /delta wasn't
available before this update. That seems like a great feature.

~~~
jakedahn
yeah - it was kind of a pain, because it is such a useful pattern when dealing
with dropbox. Super glad this was implemented.

