## 简介
本文档主要介绍OSS iOS SDK的安装和使用。本文档假设您已经开通了阿里云OSS 服务,并创建了Access Key ID 和Access Key Secret。文中的ID 指的是Access Key ID,KEY 指的是Access Key Secret。如果您还没有开通或者还不了解OSS,请登录[OSS产品主页](http://www.aliyun.com/product/oss)获取更多的帮助。
### 环境要求:
- iOS系统版本:iOS 7.0以上
- 必须注册有Aliyun.com用户账户,并开通OSS服务。
-----
## 安装
### 直接引入Framework
需要引入OSS iOS SDK framework。
您可以在MacOS系统中直接使用在本工程生成framwork:
```bash
# clone工程
$ git clone git@github.com:aliyun/aliyun-oss-ios-sdk.git
# 进入目录
$ cd aliyun-oss-ios-sdk
# 执行打包脚本
$ sh ./buildFramework.sh
# 进入打包生成目录,AliyunOSSiOS.framework生成在该目录下
$ cd Products && ls
```
在Xcode中,直接把framework拖入您对应的Target下即可,在弹出框勾选`Copy items if needed`。
### Pod依赖
如果工程是通过pod管理依赖,那么在Podfile中加入以下依赖即可,不需要再导入framework:
```
pod 'AliyunOSSiOS', '~> 2.1.4'
```
Cocoapods是一个非常优秀的依赖管理工具,推荐参考官方文档: [CocoaPods安装和使用教程](http://code4app.com/article/cocoapods-install-usage)。
直接引入Framework和Pod依赖,两种方式选其一即可。
### 工程中引入头文件
```objc
#import <AliyunOSSiOS/OSSService.h>
```
注意,引入Framework后,需要在工程`Build Settings`的`Other Linker Flags`中加入`-ObjC`。如果工程此前已经设置过`-force_load`选项,那么,需要加入`-force_load <framework path>/AliyunOSSiOS`。
### 对于OSSTask的一些说明
所有调用api的操作,都会立即获得一个OSSTask,如:
```
OSSTask * task = [client getObject:get];
```
可以为这个Task设置一个延续(continution),以实现异步回调,如:
```
[task continueWithBlock: ^(OSSTask *task) {
// do something
...
return nil;
}];
```
也可以等待这个Task完成,以实现同步等待,如:
```
[task waitUntilFinished];
...
```
-----
## 快速入门
以下演示了上传、下载文件的基本流程。更多细节用法可以参考本工程的:
test资源:[点击查看](https://github.com/aliyun/AliyunOSSiOS/tree/master/AliyunOSSiOSTests)
或者:
demo示例: [点击查看](https://github.com/alibaba/alicloud-ios-demo)。
### STEP-1. 初始化OSSClient
初始化主要完成Endpoint设置、鉴权方式设置、Client参数设置。其中,鉴权方式包含明文设置模式、自签名模式、STS鉴权模式。鉴权细节详见后面链接给出的官网完整文档的`访问控制`章节。
```objc
NSString *endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 明文设置secret的方式建议只在测试时使用,更多鉴权模式参考后面链接给出的官网完整文档的`访问控制`章节
id<OSSCredentialProvider> credential = [[OSSPlainTextAKSKPairCredentialProvider alloc] initWithPlainTextAccessKey:@"<your accesskeyId>"
secretKey:@"<your accessKeySecret>"];
client = [[OSSClient alloc] initWithEndpoint:endpoint credentialProvider:credential];
```
### STEP-2. 上传文件
这里假设您已经在控制台上拥有自己的Bucket。SDK的所有操作,都会返回一个`OSSTask`,您可以为这个task设置一个延续动作,等待其异步完成,也可以通过调用`waitUntilFinished`阻塞等待其完成。
```objc
OSSPutObjectRequest * put = [OSSPutObjectRequest new];
put.bucketName = @"<bucketName>";
put.objectKey = @"<objectKey>";
put.uploadingData = <NSData *>; // 直接上传NSData
put.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
OSSTask * putTask = [client putObject:put];
[putTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"upload object success!");
} else {
NSLog(@"upload object failed, error: %@" , task.error);
}
return nil;
}];
// 可以等待任务完成
// [putTask waitUntilFinished];
```
### STEP-3. 下载指定文件
下载一个指定`object`为`NSData`:
```objc
OSSGetObjectRequest * request = [OSSGetObjectRequest new];
request.bucketName = @"<bucketName>";
request.objectKey = @"<objectKey>";
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
OSSTask * getTask = [client getObject:request];
[getTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"download object success!");
OSSGetObjectResult * getResult = task.result;
NSLog(@"download result: %@", getResult.downloadedData);
} else {
NSLog(@"download object failed, error: %@" ,task.error);
}
return nil;
}];
// 如果需要阻塞等待任务完成
// [task waitUntilFinished];
```
-----
## 完整文档
SDK提供进阶的上传、下载功能、断点续传,以及文件管理、Bucket管理等功能。详见官方完整文档:[点击查看](http://help.aliyun.com/document_detail/oss/sdk/ios-sdk/preface.html?spm=5176.product8314910_oss.4.30.tK2G02)
-----
## 联系我们
* 阿里云OSS官方网站:http://oss.aliyun.com
* 阿里云OSS官方论坛:http://bbs.aliyun.com
* 阿里云OSS官方文档中心:http://www.aliyun.com/product/oss#Docs
* 阿里云官方技术支持 登录OSS控制台 https://home.console.aliyun.com -> 点击"工单系统"
-----
## License
Copyright (c) 2015 Aliyun.Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
没有合适的资源?快使用搜索试试~ 我知道了~
AliyunOSSiOS前端直接上传数据
共121个文件
h:65个
m:25个
plist:6个
需积分: 14 27 下载量 54 浏览量
2016-01-26
13:53:00
上传
评论
收藏 220KB ZIP 举报
温馨提示
OSSClient是OSS服务的iOS客户端,它为调用者提供了一系列的方法,用于和OSS服务进行交互。一般来说,全局内只需要保持一个OSSClient,用来调用各种操作。 前台应该直接向阿里传递数据,这样的路径是:iOS端--->阿里。以往我们的传递路径都是:iOS端--->后台--->阿里
资源推荐
资源详情
资源评论
收起资源包目录
AliyunOSSiOS前端直接上传数据 (121个子文件)
OSSModel.h 32KB
OSSTask.h 10KB
OSSClient.h 9KB
OSSNetworking.h 5KB
OSSXMLDictionary.h 4KB
OSSCompat.h 3KB
OSSTaskCompletionSource.h 2KB
OSSCancellationTokenSource.h 2KB
OSSExecutor.h 2KB
OSSUtil.h 1KB
OSSCancellationToken.h 1KB
OSSLog.h 1KB
OSSBolts.h 853B
OSSCancellationTokenRegistration.h 703B
OSSDefines.h 515B
OSSHTTPDNSTools.h 421B
OSSHTTPDNSCacheTable.h 409B
OSSService.h 312B
AppDelegate.h 276B
OSSHTTPDNSMini.h 275B
ViewController.h 214B
OSSHTTPDNSOrigin.h 208B
OSSCancellationTokenRegistration.h 77B
OSSCancellationTokenRegistration.h 77B
OSSCancellationTokenSource.h 71B
OSSCancellationTokenSource.h 71B
OSSTaskCompletionSource.h 68B
OSSTaskCompletionSource.h 68B
OSSCancellationToken.h 65B
OSSHTTPDNSCacheTable.h 65B
OSSCancellationToken.h 65B
OSSHTTPDNSCacheTable.h 65B
OSSHTTPDNSOrigin.h 61B
OSSHTTPDNSOrigin.h 61B
OSSBoltsVersion.h 60B
OSSHTTPDNSTools.h 60B
OSSBoltsVersion.h 60B
OSSHTTPDNSTools.h 60B
OSSHTTPDNSMini.h 59B
OSSHTTPDNSMini.h 59B
OSSExecutor.h 56B
OSSExecutor.h 56B
OSSDefines.h 55B
OSSDefines.h 55B
OSSBolts.h 53B
OSSXMLDictionary.h 53B
OSSBolts.h 53B
OSSXMLDictionary.h 53B
OSSTask.h 52B
OSSTask.h 52B
OSSNetworking.h 50B
OSSNetworking.h 50B
OSSService.h 47B
OSSService.h 47B
OSSCompat.h 46B
OSSClient.h 46B
OSSCompat.h 46B
OSSClient.h 46B
OSSModel.h 45B
OSSModel.h 45B
OSSUtil.h 44B
OSSUtil.h 44B
OSSLog.h 43B
OSSLog.h 43B
OSSBoltsVersion.h 34B
Contents.json 585B
LICENSE 565B
Manifest.lock 167B
Podfile.lock 167B
OSSUtil.m 43KB
OSSModel.m 41KB
OSSClient.m 41KB
OSSNetworking.m 27KB
OSSXMLDictionary.m 15KB
OSSTask.m 14KB
OSSCompat.m 12KB
OSSHTTPDNSTools.m 5KB
ViewController.m 5KB
OSSCancellationToken.m 4KB
OSSExecutor.m 3KB
OSSHTTPDNSCacheTable.m 3KB
OSSHTTPDNSMini.m 3KB
AppDelegate.m 2KB
OSSCancellationTokenRegistration.m 2KB
OSSTaskCompletionSource.m 2KB
____UITests.m 1KB
OSSCancellationTokenSource.m 1KB
____Tests.m 889B
OSSBolts.m 471B
OSSHTTPDNSOrigin.m 459B
main.m 333B
OSSLog.m 310B
AliyunOSSiOS-dummy.m 128B
Pods-dummy.m 112B
Pods-acknowledgements.markdown 716B
README.md 6KB
README.md 4KB
project.pbxproj 38KB
project.pbxproj 23KB
AliyunOSSiOS-prefix.pch 48B
共 121 条
- 1
- 2
资源评论
猿人在北京
- 粉丝: 17
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功