我有一个表单,允许用户填写几个方面,然后选择要上传的文件.
提交表单时,我想写一些代码将文件保存到Dropbox帐户并访问直接下载链接并将其放在我托管的数据库中.
如果有人这样做了,是否有API的特定部分可供查看?或者任何例子?
我似乎无法在API中找到这个.
谢谢.
我正在尝试使用Dropbox API v2上传文件.不幸的是,Dropbox API v2没有PHP库.
https://www.dropbox.com/developers/documentation/http/documentation#files-upload
这是我的代码:
$token = 'sometoken'; // oauth token
$headers = array("Authorization: Bearer ". $token,
'Dropbox-API-Arg: {"path": "/test.txt","mode": "add","autorename": true,"mute":false}',
"Content-Type: application/octet-stream");
$url = 'https://content.dropboxapi.com/2/files/upload';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
$path = './google/file.json';
$fp = fopen($path, 'rb');
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($path));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo($response.'<br/>');
echo($http_code.'<br/>');
curl_close($ch);
echo $response;
Run Code Online (Sandbox Code Playgroud)
它创建test.txt但是0字节.当我检查代码时,它读取0字节.
这是代码执行的输出:
* Trying 45.58.74.164... …
Run Code Online (Sandbox Code Playgroud) 关于dropBox集成到iPhone应用程序的一个非常基本的问题.
我按照DropBoxSDK的设置,一切正常.我可以登录我的帐户并将其链接起来.所以我正确地设置了一切.
现在我想用它来简单地从dropBox加载一个文件并再次保存.考虑到你只想同步一个文件(为简单起见),称为'example.txt',它位于我的DropBox的'Example'文件夹中.同样的'example.txt'本地保存在我的应用程序的Documents目录中的iPhone上.
dropBox自述文件隐约地提出了以下代码,我发现这些代码非常神秘,无法真正看到如何加载或保存文件:
2. Make an request on the rest client:
[[self restClient] loadMetadata:@"/"];
3. Implement the DBRestClientDelegate methods needed to get the results of the
particular call you made:
- (void)restClient:(DBRestClient*)client
loadedMetadata:(DBMetadata*)metadata {
NSLog(@"Loaded metadata!");
}
- (void)restClient:(DBRestClient*)client
metadataUnchangedAtPath:(NSString*)path {
NSLog(@"Metadata unchanged!");
}
- (void)restClient:(DBRestClient*)client
loadMetadataFailedWithError:(NSError*)error {
NSLog(@"Error loading metadata: %@", error);
}
Run Code Online (Sandbox Code Playgroud)
所以我(希望)简单的问题是我如何能够:
我无法在网站上的DropBox文档中找到这些相当基本步骤的答案.他们提供的示例我发现太令人困惑了...特别是因为它只是关于加载文件而不是我可以看到的保存它们.
如果对此有任何帮助或建议,我将不胜感激.
我的Dropbox中有一个包含30,000个文件的文件夹,我无法使用Web界面删除.看来我必须下载所有30,000个文件才能告诉dropbox我真的不想要它们.
出现此错误是因为最初拥有文件的计算机已经消失,我使用选择性同步来避免将30,000个文件下载到我的所有其他计算机.
任何人都可以想到一个聪明的方法来解决这个问题吗?只是查看文件夹通常会导致Web界面崩溃.
我不知道我是否有任何意义,但这突然出现在我的脑海里.我们可以使用2gb免费托管Dropbox将我们的django应用程序放在那里并做一些黑客来运行我们的应用程序吗?
我是新手集成drop box,但我不太确定如何生成一个调用来获取请求令牌的秘密.
https://www.dropbox.com/developers/reference/api#request-token
我必须打电话给这个网址,https://api.dropbox.com/1/oauth/request_token
这是最好的方法吗?用c#?
感谢您提供的任何帮助
PS:我只是不确定使用哪个c#库.
我正在开发一个可以在dropbox文件夹中上传和下载的应用程序,Dropbox会自动创建一个apps文件夹
我的问题是,如何将文件夹共享给另一个Dropbox用户
我之前尝试过,它声明app文件夹无法共享,或者我可以更改编码以创建不在apps文件夹中的文件夹吗?
我正在尝试使用 Dropbox 的 API,我让它成功地通过 webhooks 向我发送警报,但现在我想在每次他们向我发送警报时验证签名。
从 dropbox 的文档中,他们写道:
“每个通知请求都将包含一个名为 X-Dropbox-Signature 的标头,其中包含请求正文的 HMAC-SHA256 签名,使用您的应用程序机密作为签名密钥。这可以让您的应用程序验证通知确实来自 Dropbox。”
因此,我成功捕获了该签名,并使用 NodeJS 内置的加密模块尝试使用 HMAC SHA256 创建自己的签名,然后将我的签名与 Dropbox 发送给我的签名进行比较。
这是我这样做的代码:
var sign = req.get("X-Dropbox-Signature");
console.log(sign);
var hmac = crypto.createHmac(algorithm, secret);
hmac.update(JSON.stringify(req.body));
hash = hmac.digest('hex');
console.log(hash);
Run Code Online (Sandbox Code Playgroud)
其中 algorithm 只是“sha256”,secret 是我从 Dropbox 应用程序页面获得的密钥。我必须使用 JSON.stringify(req.body) 因为 req.body 是一个对象,而 hmac.update 需要一个字符串。我想知道这是否是我的错误的来源?
我控制台记录了来自 dropbox 的签名,然后我控制台记录了我使用 hmac 创建的签名,但它是一个不同的签名。
对我可能做错的事情有什么建议吗?
我有一个通过 Dropbox Javascript SDK 尝试下载文件的应用程序。我不知道出了什么问题。通过 fetch 调用访问 Dropbox API 会直接带来相同的错误。Dropbox API 文档说错误 400 是错误的输入参数,而看起来我发送的内容没有问题 - "Dropbox-API-Arg":"{\"path\":\"/1/price.xlsx\" }"
const Dropbox = require("dropbox").Dropbox;
import axios from "axios";
import fs = require("fs");
import { logger } from "./logger";
export class FileHandler {
public async handle(path: string, token: string): Promise<void> {
try {
const dbx = new Dropbox({ fetch: axios, accessToken: token });
dbx.filesDownload({ path })
.then((data) => {
fs.writeFile(data.name, data.fileBinary, "binary", (err) => {
if (err) { throw err; }
});
})
.catch((error: …
Run Code Online (Sandbox Code Playgroud) dropbox-api ×10
dropbox ×8
dropbox-php ×2
node.js ×2
php ×2
android ×1
asp.net ×1
c# ×1
cocoa-touch ×1
curl ×1
django ×1
edit ×1
hmac ×1
iphone ×1
javascript ×1
objective-c ×1
python ×1
sha256 ×1
sharing ×1