# aliyunpan-ios-sdk **Repository Path**: alibaba/aliyunpan-ios-sdk ## Basic Information - **Project Name**: aliyunpan-ios-sdk - **Description**: 阿里云盘 OpenSDK-iOS - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-31 - **Last Updated**: 2026-10-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
## 准备工作 在开始前,请查看阿里云盘开放平台接入指南: [👉 如何注册三方开发者](https://www.yuque.com/aliyundrive/zpfszx/tyzl591kxmft4e81) ## 快速开始 ### 1. 创建 Client ```swift let client: AliyunpanClient = AliyunpanClient( .init( appId: "YOUR_APP_ID", scope: "YOUR_SCOPE", // e.g. user:base,file:all:read ) ) ``` ### 2. 授权 你可以使用 SDK 提供的多种授权方式授权 #### [Credentials](https://alibaba.github.io/aliyunpan-ios-sdk/Enums/AliyunpanCredentials.html) | 授权方式 | 描述 | **不需要** Server | **不需要**阿里云盘客户端 | | :----: | :----: | :----: | :----: | | pkce | pkce 授权 | ✅ | ✅ | | sso | sso pkce 授权 | ✅ | ✅ | | server | 业务后端授权 | ❌ | ✅ | | qrCode | 二维码授权 | ✅ | ✅ | | token | 注入 token 授权 | ✅ | ✅ | ```swift client.authorize(credentials: credentials) ``` ### 3. 发送命令 使用 SDK,你可以轻松使用所有已提供的 OpenAPI 和它们的请求体、返回体模型 ```swift // Concurrency try await client.send( AliyunpanScope.User.GetUsersInfo()) // -> GetUsersInfo.Response try await client.send( AliyunpanScope.File.GetFileList( .init(drive_id: driveId, parent_file_id: "root")))) // -> GetFileList.Response // Closure client.send( AliyunpanScope.User.GetUsersInfo()) { result in /// do something } ``` ## 高级功能 ### 上传 ```swift let uploader = client.uploader // 上传 let task = Task { let file = try? await uploader.upload( fileURL: url, fileName: fileName, driveId: driveId, folderId: folderId, useProof: true // 是否开启快传 ) } // 取消 task.cancel() ``` ### 下载 ```swift let downloader = client.downloader // 下载 let task = downloader.download(file: file, to: destination) // let task = downloader.tasks.first // 修改并发数,默认为10 downloader.maxConcurrentOperationCount = 10 // 暂停 downloader.pause(task) // 恢复 downloader.resume(task) // 取消 downloader.cancel(task) // AliyunpanDownloadDelegate // 下载速度变化 // func downloader(_ downloader: AliyunpanDownloader, didUpdatedNetworkSpeed networkSpeed: Int64) // 下载任务状态变化 // func downloader(_ downloader: AliyunpanDownloader, didUpdateTaskState state: AliyunpanDownloadTask.State, for task: AliyunpanDownloadTask) downloadr.addDelegate(DELEGATE) ``` #### 示例 [FileListViewController](Demo/Demo/Demo-iOS/FileListViewController.swift) ## 安装方式 #### Swift Package Manager - File > Swift Packages > Add Package Dependency - 添加 `https://github.com/alibaba/aliyunpan-ios-sdk.git` #### CocoaPods ```ruby target 'MyApp' do pod 'AliyunpanSDK', '~> 0.2' end ``` ## 要求 - iOS 13.0+ (CocoaPods) - Swift 5.0+ ## 文档 [👉 文档](https://alibaba.github.io/aliyunpan-ios-sdk/) ## TODO - Alamofire、URLSession 拓展 ## License This project is licensed under the [MIT License](LICENSE).