spatie / dropbox-api
Dropbox API v2 的最小实现
Requires
- php: ^8.1
- ext-json: *
- graham-campbell/guzzle-factory: ^4.0.2|^5.0|^6.0|^7.0
- guzzlehttp/guzzle: ^6.2|^7.0
Requires (Dev)
- laravel/pint: ^1.10.1
- phpstan/phpstan: ^1.10.16
- phpunit/phpunit: ^9.4
- dev-main
- 1.22.0
- 1.21.2
- 1.21.1
- 1.21.0
- 1.20.2
- 1.20.1
- 1.20.0
- 1.19.1
- 1.19.0
- 1.18.0
- 1.17.1
- 1.17.0
- 1.16.1
- 1.16.0
- 1.15.0
- 1.14.0
- 1.13.0
- 1.12.0
- 1.11.1
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.1
- 1.7.0
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.1
- 1.0.0
- 0.0.1
- dev-dependabot/github_actions/dependabot/fetch-metadata-2.2.0
This package is auto-updated.
Last update: 2024-09-08 22:31:16 UTC
README
这是一个 Dropbox API v2 的最小 PHP 实现。它仅包含我们 flysystem-dropbox 适配器所需的方法。不过,我们欢迎通过 PR 添加更多方法到客户端。
以下是一些使用此包的示例
$client = new Spatie\Dropbox\Client($authorizationToken); //create a folder $client->createFolder($path); //list a folder $client->listFolder($path); //get a temporary link $client->getTemporaryLink($path);
支持我们
我们投入了大量资源来创建 最佳的开源包。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感激您从您的家乡寄给我们明信片,并提及您正在使用我们的哪个包。您可以在 我们的联系页面 找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙上。
安装
您可以通过 composer 安装此包
composer require spatie/dropbox-api
使用
您需要做的第一件事是在 Dropbox 获取一个授权令牌。与 其他公司 不同,Dropbox 使这个过程变得非常简单。您只需在 应用控制台 为任何 Dropbox API 应用生成一个令牌。您可以在 Dropbox 开发者博客 获取更多信息。
有了授权令牌,您就可以实例化一个 Spatie\Dropbox\Client
。
$client = new Spatie\Dropbox\Client($authorizationToken);
或者,您也可以实现 Spatie\Dropbox\TokenProvider
,该提供者将使用其 TokenProvider->getToken(): string
方法提供访问令牌。
如果您使用 oauth2 进行身份验证和获取刷新令牌和访问令牌,(例如 thephpleague/oauth2-client),您可以创建一个适配器,该适配器在内部处理令牌过期和刷新令牌,并在运行时通过 TokenProvider->getToken(): string
方法提供访问令牌。
(Dropbox 宣布他们将在 2021 年中旬迁移到短暂的访问令牌)。
// implements Spatie\Dropbox\TokenProvider $tokenProvider = new AutoRefreshingDropBoxTokenService($refreshToken); $client = new Spatie\Dropbox\Client($tokenProvider);
或者,您也可以使用您的应用密钥和密钥进行身份验证。
$client = new Spatie\Dropbox\Client([$appKey, $appSecret]);
如果您只需要访问公共端点,您可以不带任何参数实例化 Spatie\Dropbox\Client
。
$client = new Spatie\Dropbox\Client();
Dropbox 端点
查看 Spatie\Dropbox\Client
的源代码 以了解您可以使用的方法。
以下是一个示例
$content = 'hello, world'; $client->upload('/dropboxpath/filename.txt', $content, $mode='add'); $from = '/dropboxpath/somefile.txt'; $to = '/dropboxpath/archive/somefile.txt'; $client->move($from, $to);
如果目标文件名已存在,Dropbox 将抛出带有 'to/conflict/file/..' 的异常
upload()
和 move()
方法有一个可选的额外 'autorename' 参数,以尝试让 Dropbox 在存在冲突时自动重命名文件。
以下是一个示例
$from = '/dropboxpath/somefile.txt'; $to = '/dropboxpath/archive/somefile.txt'; $client->move($from, $to, $autorename=true); // with autorename results in 'somefile (1).txt'
如果您找不到您喜欢的函数,您可以直接使用 contentEndpointRequest
和 rpcEndpointRequest
函数。
public function contentEndpointRequest(string $endpoint, array $arguments, $body): ResponseInterface public function rpcEndpointRequest(string $endpoint, array $parameters): array
以下是一个示例
$client->rpcEndpointRequest('search', ['path' => '', 'query' => 'bat cave']);
如果您需要更改API请求中使用的端点URL的子域,您可以在端点路径前加上subdomain::
。
以下是一个示例
$client->rpcEndpointRequest('content::files/get_thumbnail_batch', $parameters);
更新日志
有关最近更改的更多信息,请参阅更新日志。
测试
composer test
贡献
有关详细信息,请参阅贡献指南。
您可以使用composer pint
运行代码风格修复程序,以及使用composer phpstan
运行静态分析。
安全
如果您发现有关安全性的错误,请通过[email protected]发送邮件,而不是使用问题跟踪器。
明信片软件
您可以自由使用此包(它是MIT许可),但如果它进入您的生产环境,我们非常感谢您从家乡寄给我们一张明信片,说明您正在使用我们哪个包。
我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。
我们将所有收到的明信片发布在我们的公司网站上。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。