bag / digitalocean-spaces-helpers
使用 AWS S3 SDK 与 DigitalOcean spaces 对象存储交互的辅助类。
Requires
- php: >=7.2
- aws/aws-sdk-php: ^3.222
- symfony/http-client: ^5.4
Requires (Dev)
- symfony/console: ^5.4
- symfony/var-dumper: ^5.4
README
使用 AWS S3 SDK 和 Symfony HttpClient 与 DigitalOcean spaces 对象存储交互的辅助类。
此库提供了创建、删除和列出 Spaces 和对象方面的常用功能。此库还将方便对象的上传和下载。
此库相对较新,各种方法的 API 在未来可能会发生变化。我将尽最大努力记录所有更改,并尽量避免不提前通知引入破坏性更改。
即将推出
- 使用示例。
- 停止使用 AWS S3 SDK 并完全使用 http API 实现。
类
BAG\Spaces\Client
主客户端类,可用于管理空间和对象。
常量
- ACL_PUBLIC = 'public-read'
- ACL_PRIVATE = 'private'
constructor($key, $secret, $region)
createSpace($name)
创建空间。
如果空间已创建则返回 true,如果已存在则返回 false,如果失败则返回 false。
deleteSpace($name)
删除空间。
如果空间被删除则返回 false,否则返回 false。
listSpaces($names = false)
获取空间列表。
返回可用空间的数组。
spaceExists($space)
检查空间是否存在。
如果空间存在则返回 true,否则返回 false。
list($space, $keys = false, $arguments = [])
获取对象列表。
返回对象的数组,失败时返回 false。
get($space, $key, $arguments = [])
获取对象。
返回对象,如果未找到或失败则返回 null。
exists($space, $key)
检查对象是否存在。
如果对象存在则返回 true,否则返回 false。
getAcl($space, $key)
获取对象的 ACL。
返回字符串或失败时返回 false。
setAcl($space, $key, $acl)
设置对象的 ACL。
返回 true 或失败时返回 false。
upload($space, $key, $content, $public = false, $arguments = [])
上传内容。
如果成功则返回字符串形式的键,失败时返回 false。
uploadFile($space, $key, $file, $public = false, $arguments = [])
上传文件。
如果成功则返回字符串形式的键,失败时返回 false。
multipartUploadFile($space, $key, $file, $public = false, $arguments = [])
多部分文件上传。
如果成功则返回字符串形式的键,失败时返回 false。
download($space, $key, $destination)
本地下载文件。
如果文件成功下载则返回 true,失败时返回 false。
publicUrl($space, $key)
获取对象的公共 URL。
返回 URL 字符串。
presignedDownload($space, $key, $duration = '+5 minutes')
生成预签名下载 URL。
返回预签名下载 URL 字符串。
presignedUpload($space, $key, $duration = '+5 minutes')
生成预签名上传 URL。
返回预签名上传 URL 字符串。
delete($space, $key)
删除对象。
成功时返回 true,失败时返回 false。
baseKey($key)
获取基本键。类似于 PHP dirname()。
返回字符串。
verifyRequest(&$request, $key, $default = [])
验证 HTTP 结果具有特定属性。
createAuthorizationSignature($arguments)
创建一个授权签名头。
返回一个数组。第一个元素是用于 API 授权的头数组,第二个元素是将头编译为字符串。
getClient()
获取 S3Client 实例。
返回 S3Client。
静态 createClient($key, $secret, $endpoint)
创建 S3Client。
返回 S3Client 实例。
静态 create($key, $secret, $endpoint)
创建 Spaces 客户端。
返回客户端实例。
BAG\Spaces\Space
Space 类,可用于管理单个空间及其对象。
常量
- ACL_PUBLIC = 'public-read'
- ACL_PRIVATE = 'private'
construct($space, $key, $secret, $region, $create = false)
list($keys = false, $arguments = [])
获取对象列表。
返回对象的数组,失败时返回 false。
get($key, $arguments = [])
获取对象。
返回对象,如果未找到或失败则返回 null。
exists($key)
检查对象是否存在。
如果对象存在则返回 true,否则返回 false。
getAcl($key)
获取对象的 ACL。
返回字符串或失败时返回 false。
setAcl($key, $acl)
设置对象的 ACL。
返回 true 或失败时返回 false。
upload($key, $content, $public = false, $arguments = [])
上传内容。
如果成功则返回字符串形式的键,失败时返回 false。
uploadFile($key, $file, $public = false, $arguments = [])
上传文件。
如果成功则返回字符串形式的键,失败时返回 false。
multipartUploadFile($key, $file, $public = false, $arguments = [])
多部分文件上传。
如果成功则返回字符串形式的键,失败时返回 false。
download($key, $destination)
本地下载文件。
如果文件成功下载则返回 true,失败时返回 false。
publicUrl($key)
获取对象的公共 URL。
返回 URL 字符串。
presignedDownload($key, $duration = '+5 minutes')
生成预签名下载 URL。
返回预签名下载 URL 字符串。
presignedUpload($key, $duration = '+5 minutes')
生成预签名上传 URL。
返回预签名上传 URL 字符串。
delete($key)
删除对象。
成功时返回 true,失败时返回 false。
baseKey(string $key)
获取基本键。类似于 PHP dirname()。
返回字符串。
getClient()
获取客户端实例。
返回客户端。
BAG\Spaces\Authorization
类,用于辅助生成 HTTP 授权头。
construct($key, $secret)
create($arguments)
创建授权头并返回生成的完整头信息集。
返回一个数组。第一个元素是用于 API 授权的头数组,第二个元素是将头编译为字符串。