阿里云OSS下载-swift

配置阿里云OSS并上传文件-B站视频教程

阿里云OSS服务文档

配置

Pod依赖
swift 复制代码
pod 'AliyunOSSiOS'
导入framework

阿里云OSS-github

根据github中的教程生成framework并引入项目

swift 复制代码
# clone工程
$ git clone git@github.com:aliyun/aliyun-oss-ios-sdk.git

# 进入目录
$ cd aliyun-oss-ios-sdk

# 执行打包脚本
$ sh ./buildiOSFramework.sh

# 进入打包生成目录,AliyunOSSiOS.framework生成在该目录下
$ cd Products && ls
Xcode配置

一般只需要加入 -ObjC(注意大小写)

兼容IPv6-Only网络

添加一下3个库

swift 复制代码
libresolv.tbd
CoreTelephony.framework
SystemConfiguration.framework            

OSS下载

swift 复制代码
import AliyunOSSiOS

// 配置访问凭证(方式二:使用STS Token)
let token = OSSFederationToken()
token.tAccessKey = "Key的ID"
token.tSecretKey = "Key的密钥"
token.tToken = "Key的token"
        
let provider = OSSStsTokenCredentialProvider(accessKeyId: token.tAccessKey, secretKeyId: token.tSecretKey, securityToken: token.tToken)
let client: OSSClient = OSSClient(endpoint: "OSS访问域名", credentialProvider: provider)
        
// 下载请求
let request = OSSGetObjectRequest()
request.bucketName = "存储空间名称"
request.objectKey = "对象名称"
        
// 下载路径
request.downloadToFileURL = ""
        
 // 下载进度
request.downloadProgress = { (bytesSent: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) -> Void in
	print("bytesSent:\(bytesSent),totalBytesSent:\(totalBytesSent),totalBytesExpectedToSend:\(totalBytesExpectedToSend)");
}

 // 下载
let task = client.getObject(request)
task.waitUntilFinished()
iPhone的文件保存路径

1、Documents Directory

用户生成的数据文件存放的地方

1、Library Directory

应用程序支持文件,缓存文件等存放位置

1、Temporary Directory

存放临时文件,系统可能会在未来清理此文件夹中的内容

swift 复制代码
// 1. 获取Documents目录路径
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

// 2. 获取Library目录路径
let libraryDirectory = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!

// 3. 获取Temporary目录路径
let temporaryDirectory = FileManager.default.temporaryDirectory

OSS下载可以放在Library目录的Caches中

swift 复制代码
 // 获取Library目录的Cache路径
let cachesDirectory = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first!

// 作为OSS下载路径时必须有文件的名称
let path = cachesDirectory.appendingPathComponent("文件名")

// 显示Caches目录的内容
func showlistCacheslist() {
	let fileManager = FileManager.default
	let cachesDirectoryURL = fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first!
        
	do {
		let directoryContents = try fileManager.contentsOfDirectory(at: cachesDirectoryURL, includingPropertiesForKeys: nil)
		for path in directoryContents {
			print(path.lastPathComponent)
		}
	} catch {
		print("Error while listing Caches directory contents: \(error.localizedDescription)")
	}
}
相关推荐
黑科技iOS上架2 小时前
iOS应用上架:提前规避审核被拒风险
ios·审核
我是高手高手高高手5 小时前
安装宝塔,阿里云(有系统和数据两个盘)
阿里云·云计算
茶底世界之下5 小时前
方图一定要裁照片吗?用 Awaking 比较裁切与留白
ios
00后程序员张7 小时前
无需 Mac 的 iOS App 上架工具,开心上架Appuploader 负责哪些环节
android·ios·小程序·https·uni-app·iphone·webview
2501_915106327 小时前
Windows 用 KXBuild 开发 iOS 项目,CocoaPods、SPM 怎么处理?
windows·vscode·ios·个人开发·swift·敏捷流程·cocoapods
2501_915909068 小时前
KXApp 能打开哪些 iOS 项目?xcodeproj 与 CocoaPods 支持清单
ide·vscode·ios·个人开发·xcode·敏捷流程·cocoapods
开心就好202521 小时前
uni-app 本地打包 iOS,在 Windows 上使用 KXBuild 产出 ipa 并上架的完整流程
后端·ios
调试人生的显微镜1 天前
跨平台抓包工具怎么选?TraceEagle抓包鹰 的四种跨平台能力
后端·ios
FY@-@1 天前
VMware ESXi 7.0 实验全记录:嵌套安装 → 网络配置 → 存储 → Windows 10 虚拟机部署
运维·网络·windows·云计算
2501_915909061 天前
Ipa Guard 防护上架,混淆、重签名和回归测试怎么做
android·ios·小程序·https·uni-app·iphone·webview