bag/digitalocean-spaces-helpers

使用 AWS S3 SDK 与 DigitalOcean spaces 对象存储交互的辅助类。

1.0.4 2023-03-10 03:35 UTC

This package is auto-updated.

Last update: 2024-09-07 06:37:34 UTC


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 授权的头数组,第二个元素是将头编译为字符串。