我目前正在开展一个相当有趣的项目。我有一个客户想要允许表单上传(从他们服务器上显示的页面)专门上传到他们自己的谷歌驱动器帐户。使用的平台基本上是LAMP。
单个(经过预先验证的)Google云端硬盘帐户。多个匿名上传源(用户)。
他们不希望用户拥有自己的Google帐户(只需在用户自己的驱动文件上使用Picker排除规则)。
他们想要一定程度的向后浏览器兼容性,例如IE8(排除XHR以使用HTML5的文件API来形成帖子以读取filedata)。由于某些移动浏览器可能存在兼容性问题,他们不想使用flash / etc。
工作原理:
问题:
所有这些都经过研究并在不同程度上进行了尝试。
目前这一点已经搁置(至少它是了解API并了解其局限性的一种有用方法)而且我只是想在Dropbox上实现类似的东西,但是如果有人有任何有用的话输入它会很可爱!
e.g。有没有办法让这个与驱动器一起使用?我忽略了什么吗?
我也意识到这可能基本上不是一个预期的用例,所以我不期待奇迹。我意识到理想的流程是简单地允许用户在必要时上传到他们自己的谷歌驱动器,然后让他们授予我们的网络应用程序的文件访问权限(通过Picker或API +我们自己的用户界面),但这不成为一个问题,当没有我们所有的用户都必须已经是Google帐户用户。我知道谷歌显然希望我们让更多的人与他们签约才能实现这一目标,但是让人们注册谷歌帐户以使用我们的应用程序被排除(不是出于任何偏见,这是太多的额外步骤和潜在的用户障碍)。即使只是让他们登录谷歌,如果他们确实有帐户被认为是基本的LCD功能功能不受欢迎,虽然它可能作为一个额外的选项添加在任何成为基础解决方案之上。
答案 0 :(得分:1)
您所描述的方法的最大问题是您引入了一个很大的安全问题。允许匿名用户从客户端直接上传到云端硬盘需要将共享访问令牌泄露给任何人。即使驱动器文件范围有限,恶意或甚至有点好奇的用户也可以列出,访问(读取/更新/删除!)该应用程序上传的任何文件。
当然,公共投递箱功能仍然有用,但您确实需要代理这些请求以避免泄露访问令牌。如果您的PHP环境限制太多,为什么不在别处运行代理呢?您可以托管一个简单的代理来处理几乎任何地方的上传 - 应用引擎,heroku等,并支持您需要的任何功能,以确保为您的应用正确设置元数据。