• 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

  • 相关阅读:
    Spring实现声明式事务
    Spring整合MyBatis
    Spring AOP
    代理模式
    Bean的作用域
    Spring的配置
    HQL题目记录以及解题思路--持续更新
    数仓学习之路一:数仓理论
    DBeaver连接Hive遇到的坑
    MySQL常见面试题
  • 原文地址:https://www.cnblogs.com/chars/p/5137460.html
Copyright © 2020-2023  润新知