Uploadcare 的 Swift API 客户端
Uploadcare Swift API 客户端用于 iOS、iPadOS、tvOS、macOS 和 Linux,通过封装 Uploadcare 上传和 REST APIs 来处理文件的上传和进一步操作。
查看 演示应用。
安装
Swift 包管理器
要使用稳定版本,请将依赖项添加到您的 Package.swift 文件中
dependencies: [
.package(url: "https://github.com/uploadcare/uploadcare-swift.git", from: "0.1.0")
]
如果您想尝试当前的开发版本,更改依赖项为
dependencies: [
.package(url: "https://github.com/uploadcare/uploadcare-swift.git", branch("develop"))
]
或者您可以在 Xcode 中添加它: https://github.com/uploadcare/uploadcare-swift(选择 master 分支)。
Carthage
要使用稳定版本,请将依赖项添加到您的 Cartfile 中
github "uploadcare/uploadcare-swift" "0.1.0"
要使用当前开发版本
github "uploadcare/uploadcare-swift" "develop"
CocoaPods
要使用稳定版本,请在 Podfile 中添加依赖项。
pod 'Uploadcare', git: 'https://github.com/uploadcare/uploadcare-swift'
要使用当前开发版本
pod 'Uploadcare', git: 'https://github.com/uploadcare/uploadcare-swift', :branch => 'develop'
初始化
在 Uploadcare 控制面板 中创建项目,并从这里复制其 API 密钥。
上传 API 只需要一个公钥,而 REST API 需要公钥和密钥。
let uploadcare = Uploadcare(withPublicKey: "YOUR_PUBLIC_KEY")
// Secret key is optional. Initialization with secret key:
let uploadcare = Uploadcare(withPublicKey: "YOUR_PUBLIC_KEY", secretKey: "YOUR_SECRET_KEY")
使用上传 API
查看所有可用方法的完整 上传 API 文档。
直接上传的示例
guard let url = URL(string: "https://source.unsplash.com/random") else { return }
let data = try? Data(contentsOf: url) else { return }
// You can create UploadedFile object to operate with it
let fileForUploading1 = uploadcare.uploadAPI.file(fromData: data)
let fileForUploading2 = uploadcare.uploadAPI.file(withContentsOf: url)
// Handle error or result
fileForUploading1.upload(withName: "random_file_name.jpg", store: .store) { (result, error) in
}
// Completion block is optional
fileForUploading2?.upload(withName: "my_file.jpg", store: .store)
// Or you can just upload data and provide filename
let task = uploadcare.uploadAPI.upload(files: ["random_file_name.jpg": data], store: .store, expire: nil, { (progress) in
print("upload progress: \(progress * 100)%")
}) { (resultDictionary, error) in
if let error = error {
print(error)
return
}
guard let files = result else { return }
for file in files {
print("uploaded file name: \(file.key) | file id: \(file.value)")
}
}
// You can cancel uploading if needed
task.cancel()
使用 REST API
查看所有可用方法的完整 REST API 文档。
获取文件列表的示例
// Make a query object
let query = PaginationQuery()
.stored(true)
.ordering(.sizeDESC)
.limit(5)
// Make files list object
let filesList = uploadcare.list()
// Get files list
filesList.get(withQuery: query) { (list, error) in
if let error = error {
print(error)
return
}
print(list ?? "")
}
获取下一页
// Check if the next page is available
guard filesList.next != nil else { return }
// Get the next page
filesList.nextPage { (list, error) in
if let error = error {
print(error)
return
}
print(list ?? "")
}
获取上一页
// Check if the previous page is available
guard filesList.previous != nil else { return }
// Get the previous page
filesList.previousPage { (list, error) in
if let error = error {
print(error)
return
}
print(list ?? "")
}
有用的链接
Swift 上传 API 客户端文档
Swift REST API 客户端文档
Uploadcare 文档
Upload API 参考
REST API 参考
变更日志
贡献指南
安全策略
支持