我想从dropbox下载文件,需要代表dropbox用户将其保存在我的服务器中。我尝试使用curl和file_get_contents。但无法成功。我是否需要使用Dropbox的任何api方法?我能够从浏览器下载该文件,但我需要将其保存在服务器中。我的应用程序是一种文件共享。
答案 0 :(得分:2)
Dropbox浏览器客户端仅供注册用户使用,用户需要登录,然后才能访问该文件。
但正如您所说,要代表用户访问Dropbox文件,您需要使用Dropbox Core API,您可以使用PHP Dropbox SDK构建自己的应用程序。 我认为没有别的办法。
正如您所提到的,您希望代表用户从Dropbox访问文件,我猜您可能会在没有用户交互的情况下考虑它,但有一个问题,Dropbox使用OAuth 1.0 or 2.0,在这两种方法中,您需要进行用户交互。 (For More Read Here)
你也说过,你的应用程序是一种File Sharing
,所以请查看Dropbox App Review Process,它禁止公开搜索File Share
个应用程序。
不构建文件共享应用
Dropbox不支持在Dropbox上构建可公开搜索的文件共享网络。
答案 1 :(得分:1)
您可以使用该文件的Dropbox公共链接,并使用file_get_contents
和file_put_contents
。
下面的Vanilla PHP示例。
<?php
// Custom Dropbox link. Notice the ?dl=1 at the end.
$url = file_get_contents( 'https://www.dropbox.com/s/hash/file.mp4?dl=1' );
// Your new file name
$file = "downloaded-video.mp4";
// open, write and close the new file
file_put_contents($file, $url);
?>
来自服务提供商的API通常是访问其数据的最佳方式。这种方法肯定会更好。
我唯一的注意事项是:小心不要破坏Dropbox的ToS。
答案 2 :(得分:0)
你可以使用/下载。它将返回如下响应:
{
"name": "Prime_Numbers.txt",
"id": "id:a4ayc_80_OEAAAAAAAAAXw",
"client_modified": "2015-05-12T15:50:38Z",
"server_modified": "2015-05-12T15:50:38Z",
"rev": "a1c10ce0dd78",
"size": 7212,
"path_lower": "/homework/math/prime_numbers.txt",
"path_display": "/Homework/math/Prime_Numbers.txt",
"sharing_info": {
"read_only": true,
"parent_shared_folder_id": "84528192421",
"modified_by": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc"
},
"property_groups": [
{
"template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa",
"fields": [
{
"name": "Security Policy",
"value": "Confidential"
}
]
}
],
"has_explicit_shared_members": false,
"content_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
请在此处查看完整的详细信息:https://www.dropbox.com/developers/documentation/http/documentation#files-download
答案 3 :(得分:0)
Dropbox选择器是从Dropbox获取文件的最快方法
https://www.dropbox.com/developers/chooser
在演示部分下,选择直接链接,然后选择Dropbox文件以创建直接链接。
登录SSH并导航到要下载并粘贴命令的文件夹
curl -O 'url'