zoukankan      html  css  js  c++  java
  • iOS学习之七牛云存储应用

    前言

    七牛云存储,是专为移动时代开发者打造的数据管理平台,为互联网网站和移动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

  • 相关阅读:
    thinkphp5 tp5 命名空间 报错 Namespace declaration statement has to be the very first statement in the script
    开启 php 错误 提示 php-fpm 重启 nginx 500错误 解决办法 wdlinux lnmp 一键包 php脚本无法解析执行
    js 设置 cookie 定时 弹出层 提示层 下次访问 不再显示 弹窗 getCookie setCookie setTimeout
    php 二维数组 转字符串 implode 方便 mysql in 查询
    nginx 重启 ps -ef|grep nginx kill -HUP 主进程号
    jquery bootstrap help-block input 表单 提示 帮助 信息
    jquery 倒计时 60秒 短信 验证码 js ajax 获取
    jQuery如何获取同一个类标签的所有的值 遍历
    linux下C语言文件操作相关函数
    gcc,gdb用法
  • 原文地址:https://www.cnblogs.com/chars/p/5137460.html
Copyright © 2011-2022 走看看