Uploadcare 0.2.0

Uploadcare 0.2.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2020年9月

Uploadcare, Inc 维护。



Uploadcare 的 Swift API 客户端

license swift Build Status

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 参考
变更日志
贡献指南
安全策略
支持