Google云端硬盘/ Dropbox API / RemoteStorage应用的目录沙盒访问?

时间:2015-06-09 15:37:02

标签: html5 google-drive-api dropbox-api remotestorage

有没有办法在任何主要文件服务上获取沙盒,用户选择的目录访问权限,而无需先获得对整个文件系统的读取级别访问权限?

有很多关于" unhosted"静态webapps,允许用户从第三方文件服务(Google Drive,Dropbox,他们自己的服务器等)访问他们的数据。到目前为止,我发现的最值得注意的工作是remoteStorage.io,但似乎并没有让任何主要提供商让用户选择目录,然后将其用作沙箱而不使用打破他们的信任(即首先获得对所有文件的读取权限)。

从用户的角度来看,除了用户授予其访问权限的文件夹之外,webapp不应该访问远程文件存储上的任何其他内容(例如,我可能会授予文本编辑器访问权限)到我的 FunnyJokes 文件夹)。

当前的解决方法似乎是提前让webapp强制使用特定的文件夹名称("此应用程序需要访问/ appname_notes"),但这排除了让用户将其指向他们所在的位置可能已经有了他们的笔记。

有没有人知道使用Google云端硬盘,Dropbox等做到这一点的好方法?

对我来说最有意义的用户体验就像......

  1. 用户打开一个非托管的Web应用程序(例如,基本文本编辑器TextyApp)。他们点击按钮连接他们的数据。
  2. 出现第三方身份验证页面(例如,Google云端硬盘)并显示"应用程序TextyApp已请求对您的文件进行读/写访问。请选择要使用的目录。"
  3. 确认屏幕:"授予TextyApp文件夹 FunnyJokes 的读/写权限?"
  4. 页面重定向回webapp,沙盒访问用户指定的文件夹及其中的文件。
  5. 这似乎是远程文件存储 的工作方式,但我还没有找到办法。 任何想法/建议都会很棒!

    干杯, 亚当

    编辑:为了澄清,我不是在讨论存储隐藏的" application data",而是让用户指定沙箱的特定目录以便与webapp一起使用可能不想让更广泛的访问权限。

2 个答案:

答案 0 :(得分:1)

使用remoteStorage,沙盒目录访问是当前应用程序请求(和用户授予)访问存储的默认方式。但是,用户无法在连接阶段手动选择或输入自定义目录。

答案 1 :(得分:0)

Dropbox Apps API可以使用您的API密钥将任何应用限制为Dropbox帐户的单个目录。因此,用户可以创建一个API密钥,可以访问特定目录,然后将其插入您的应用程序。但是,这不是一个用户友好的工作流程。

我认为Dropbox Drop-Ins Chooser/Saver API可能接近你想要的。向用户显示Dropbox文件选择弹出窗口,您的应用程序只能访问用户选择的特定文件。