Need help with objc-sdk?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

qiniu
424 Stars 192 Forks MIT License 982 Commits 5 Opened issues

Description

Qiniu Resource (Cloud) Storage Objective-C SDK for Mac/iOS

Services available

!
?

Need anything else?

Contributors list

No Data

Qiniu Resource Storage SDK for Objective-C

@qiniu on weibo Software License Build Status GitHub release codecov Platform

安装

通过 CocoaPods

pod "Qiniu", "~> 8.0.5" 

运行环境

| Qiniu SDK 版本 | 最低 iOS版本 | 最低 OS X 版本 | Notes | | :--------------------------------------: | :------: | :--------: | :-----------: | | 8.0.x | iOS 7 | OS X 10.14 | Xcode 最低版本 11 | | 7.5.x | iOS 7 | OS X 10.9 | Xcode 最低版本 6. | | 7.4.x | iOS 7 | OS X 10.9 | Xcode 最低版本 6. | | 7.3.x | iOS 7 | OS X 10.9 | Xcode 最低版本 6. | | 7.2.x | iOS 7 | OS X 10.9 | Xcode 最低版本 6. | | 7.1.x / AFNetworking-3.x | iOS 7 | OS X 10.9 | Xcode 最低版本 6. | | 7.0.x / AFNetworking-2.x | iOS 6 | OS X 10.8 | Xcode 最低版本 5. | | 7.x / AFNetworking-1.x | iOS 5 | OS X 10.7 | Xcode 最低版本 5. | | 6.x | iOS 6 | None | Xcode 最低版本 5. |

使用方法

简单上传

#import 
...
    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:[QNUploadOption defaultOptions]];
...

如使用最新版的sdk,默认自动判断上传空间。如需要指定上传区域,可以按如下方式上传:

#import 
...
    QNConfiguration *config = [QNConfiguration build:^(QNConfigurationBuilder *builder) {
        builder.useHttps = NO;// 是否使用https
        builder.zone = [QNFixedZone zone0];// 指定华东区域
        // builder.zone = [QNFixedZone zone1];// 指定华北区域
        // builder.zone = [QNFixedZone zone2];// 指定华南区域
        // builder.zone = [QNFixedZone zoneNa0];// 指定北美区域
        // builder.zone = [QNFixedZone zoneAs0];// 指定东南亚区域
    }];

QNUploadManager *upManager = [[QNUploadManager alloc] initWithConfiguration:config];
QNUploadOption *option = [[QNUploadOption alloc] initWithProgressHandler:^(NSString *key, float percent) {
    NSLog(@"progress %f", percent);
}];

NSData *data = [@"Hello, World!" dataUsingEncoding:NSUTF8StringEncoding];
NSString *token = @"从服务端SDK获取";
[upManager putData:data key:@"hello" token:token complete: ^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
    NSLog(@"%@", info);
    NSLog(@"%@", resp);
} option:option];

... </qiniusdk.h>

建议 QNUploadManager 创建一次重复使用, 或者使用单例方式创建.

测试

所有测试

$ xcodebuild test -workspace QiniuSDK.xcworkspace -scheme QiniuSDK_Mac -configuration Release -destination 'platform=macOS,arch=x86_64'

指定测试

可以在单元测试上修改, 熟悉 SDK

$ xcodebuild test -workspace QiniuSDK.xcworkspace -scheme QiniuSDK_Mac -configuration Release -destination 'platform=macOS,arch=x86_64' -only-testing:"QiniuSDK_MacTests/QNResumeUploadTest/test5M"

示例代码

  • 完整的demo 见 QiniuDemo 目录下的代码
  • 具体细节的一些配置 可参考 QiniuSDKTests 下面的一些单元测试,以及源代码

常见问题

  • 如果碰到 crc 链接错误, 请把 libz.dylib 加入到项目中去
  • 如果碰到 res9ninit 链接错误, 请把 libresolv.dylib 加入到项目中去
  • 如果需要支持 iOS 5 或者支持 RestKit, 请用 AFNetworking 1.x 分支的版本
  • 如果碰到其他编译错误, 请参考 CocoaPods 的 troubleshooting
  • iOS 9+ 强制使用https,需要在project build info 添加NSAppTransportSecurity类型Dictionary。在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES。 具体操作可参见 http://blog.csdn.net/guoer9973/article/details/48622823

代码贡献

详情参考 代码提交指南.

贡献记录

联系我们

  • 如果需要帮助, 请提交工单 (在 portal 右侧点击咨询和建议提交工单, 或者直接向 [email protected] 发送邮件)
  • 如果有什么问题, 可以到问答社区提问, 问答社区
  • 更详细的文档, 见 官方文档站
  • 如果发现了 bug, 欢迎提交 issue
  • 如果有功能需求, 欢迎提交 issue
  • 如果要提交代码, 欢迎提交 pull request
  • 欢迎关注我们的 微信 && 微博, 及时获取动态信息

代码许可

The MIT License (MIT). 详情见 License 文件.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.