前言

七牛云存储,是专为移动时代开发者打造的数据管理平台,为互联网网站和移动App提供数据的在线托管、传输加速以及图片、音视频等富媒体的云处理服务。

七牛云官网http://www.qiniu.com/,进入开发者平台,浏览了所有的开发指南,可是却是没有具体清晰的操作步骤。今天自己试着通过网络,实现了使用七牛云存储文件。现在,将操作步骤记录如下。

准备工作

1.注册七牛云账号。

2.创建空间。

3.获取Access Key。

4.获取Secret Key。

5.获取官方SDK(https://github.com/qiniu/objc-sdk)。

导入工程

1.打开Xcode创建Project。

2.从获取的官方SDK导入库,如下图

3.获取token

这一步,网上大家都说得很简单,在这一步卡壳许久。现在说说自己使用的方法:

1)获取服务器代码,编译工程,以备生成token。

服务器代码地址:https://github.com/CharsDavy/QiNiuGenertorToken

2)使用Eclipse导入上述服务器代码

在Test.java文件中,修改自己的空间名称,Access Key和Secret Key。运行程序,即可获得token。

这种方式生成的token的有效期是可以自己设定的,如果你想,设定1000年过期也是可以的。

4.使用代码上传文件

#import <QiniuSDK.h>
...
NSString token = @"从服务端SDK获取";
QNUploadManager *upManager = [[QNUploadManager alloc] init];
NSData *data = [@"Hello, World!" dataUsingEncoding : NSUTF8StringEncoding];
[upManager putData:data key:@"hello" token:token
complete: ^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
NSLog(@"%@", info);
NSLog(@"%@", resp);
} option:nil];
...

调试

工程导入之后,可能会出现以下几种可能的错误。

1.若报 Undefined symbols for architecture x86_64: "_crc32", referenced from: ,项目中需导入 libz.dylib。(Build Phases ---Link Binary With Libraries)

2.若报"_res_9_ninit", referenced from: _setup_dns_server in QNResolver.o 等,

  1)项目中需导入 libresolv.dyliblibresolv.9.dylib。(Build Phases --- Link Binary With Libraries);
  2)或 (Build Settings --- Linking --- Other Linker Flags) 添加 -lresolv 选项

3.若报 Thread 1: EXC_BAD_ACCESS(code=1,address=0x180f4beb8)类似错误,将 QN 打头的都设置 arc (Build Phases --- Compile Sources)

4.可能需要修改部分内容,如 #import <AFNetworking/AFNetworking.h> 改为 #import "AFNetworking.h"

小结

以上就是本人在工程中使用七牛云进行文件云存储的过程,本文中使用的仅仅是上传文件,更多其他操作功能请参照官方文档。

最后,附上一个使用七牛云存储的软件,源码地址:https://github.com/CharsDavy/MyNotes

其实,对于获取token来完成上载操作,也可以参考官方文档,地址在

http://developer.qiniu.com/docs/v6/api/reference/security/put-policy.html

iOS学习之七牛云存储应用的更多相关文章

  1. iOS学习笔记--数据存储

    iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 1. XM ...

  2. 一百二十九:CMS系统之七牛云存储介绍和配置

    将图片的存储.尺寸等图片本身的一些擦做,交给七牛云处理,自己只关注网站开发本身 七牛云官网:https://www.qiniu.com 操作 登录后,点击管理控制台 点击对象存储-->新建存储空 ...

  3. iOS学习——iOS常用的存储方式

    不管是在iOS还是Android开发过程中,我们都经常性地需要存储一些状态和数据,比如用户对于App的相关设置.需要在本地缓存的数据等等.根据要存储的的数据的大小.存储性质以及存储类型,在iOS和An ...

  4. Go语言实战 - 网站性能优化第一弹“七牛云存储”

    由于用户纷纷反应山坡网的打开速度比较慢,所以两天前我们决定把服务器从linode迁移到阿里云. 整个迁移过程非常平滑,基本上一个小时就完成了.而且阿里云的配套设施提供的也很不错,运行状态监控什么的都有 ...

  5. 【原】iOS学习47之第三方-FMDB

    将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...

  6. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  7. 【原】iOS学习之SQLite和CoreData数据库的比较

    1. SQLite数据库 sqlite数据库操作的基本流程是, 创建数据库, 再通过定义一些字段来定义表格结构, 可以利用sql语句向表格中插入记录, 删除记录, 修改记录, 表格之间也可以建立联系. ...

  8. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  9. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

随机推荐

  1. Node.js 配置Nginx

    1.修改nginx.conf upstream nodejs { server 127.0.0.1:3000; #server 127.0.0.1:3001; keepalive 64; } serv ...

  2. Ubuntu下修改tomcat6默认的8080端口

    $ sudo vi /etc/tomcat6/server.xml   将 <Connector port="8080" protocol="HTTP/1.1&qu ...

  3. debian下为arm开发板创建基于debian或emdebian的根文件系统

    Debian系统本身包含对arm的支持,其包含的软件包最多,但是最终的文件系统要大一些. emdebian 是一个非常好用的嵌入式linux操作系统,其基于debian的特点对于熟悉debian系统的 ...

  4. quick-cocos2d-x的热更新机制实现

    quick-cocos2d-x的热更新机制实现 0 依赖 这里说的热更新,指的是客户端的更新. 大致的流程是,客户端在启动后访问更新api,根据更新api的反馈,下载更新资源,然后使用新的资源启动客户 ...

  5. Paxos发展、算法原理

    Paxos 发展史 Leslie Lamport所提出的Paxos算法是现代分布式系统中的一项重要的基础性技术,得到广泛的应用. Paxos的整个发展过程大概可以分为三个阶段: 第一阶段:萌芽期,大致 ...

  6. Hive学习笔记——保存select结果,Join,多重插入

    1. 保存select查询结果的几种方式: 1.将查询结果保存到一张新的hive表中 create table t_tmp as select * from t_p; 2.将查询结果保存到一张已经存在 ...

  7. springbatch操作DB

    一.需求分析 使用Spring Batch对DB进行读写操作: 从一个表中读取数据, 然后批量的插入另外一张表中. 二.代码实现 1. 代码结构图: 2. applicationContext.xml ...

  8. Easyui data方法扩展finder

    finder: function(jq, conditions){ if(!$(jq).data("OriginalData")){ $(jq).data("Origin ...

  9. 第二百三十一节,Bootstrap 介绍

    Bootstrap 介绍 学习要点: 1.Bootstrap 概述 2.Bootstrap 特点 3.Bootstrap 结构 4.创建第一个页面 5.学习的各项准备 本节课我们主要了解一下 Boos ...

  10. 【BZOJ】1654: [Usaco2006 Jan]The Cow Prom 奶牛舞会(tarjan)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1654 请不要被这句话误导..“ 如果两只成功跳圆舞的奶牛有绳索相连,那她们可以同属一个组合.” 这句 ...