環境要件
iOS 7.0 以降
インストール
アップロード SDK のダウンロード
- フレームワークの導入
OSS iOS SDK と VODUpload iOS SDK のフレームワークを導入します。
Xcode で、フレームワークをドラッグしてターゲットにドロップし、表示されたダイアログボックスで [Copy items if needed] を選択します。
- プロジェクトへのヘッダーファイルの導入
#import <VODUpload/VODUploadClient.h>
注 フレームワークを導入した後、プロジェクトのBuild Settings
のOther Linker Flags
に、-ObjC
を追加します。 プロジェクトに-force_load
オプションが設定されている場合は、-force_load /AliyunOSSiOS
を追加します。 - IPv6 専用ネットワークとの互換性
OSS モバイル SDK では、ワイヤレスネットワークでのドメイン名解決ハイジャックを回避するため HTTPDNS を導入しており、サーバーへのリクエストに対しては、IP アドレスを直接使用しています。 IPv6 専用ネットワークでは、互換性の問題が発生する可能性があります。 アプリは公式に、各アプリは IPv6 専用ネットワーク互換を必要とする旨のアプリのレビュー要件を発行しました。 このため、SDK は
V2.5.0
以降で互換性を持つようになっています。 新しいバージョンでは、-ObjC
の設定とは別に、2 つのシステムライブラリを導入する必要があります。libresolv.tbd SystemConfiguration.framework
VODUpload インスタンスの作成
コールバック関数の設定
OnUploadStartedListener testUploadStartedCallbackFunc = ^(UploadFileInfo* fileInfo) {
NSLog(@"upload started .") ;
};
OnUploadSucceedListener testSuccessCallbackFunc = ^(NSString* filePath){
NSLog(@"file:%@ upload success!", filePath);
};
OnUploadFailedListener testFailedCallbackFunc = ^(NSString* filePath, NSString* code, NSString* message){
NSLog(@"failed code = %@, error message = %@", code, message);
};
// Unit: byte
OnUploadProgressListener testProgressCallbackFunc = ^(NSString* filePath, long uploadedSize, long totalSize) {
NSLog(@"progress uploadedSize : %li, totalSize : %li", uploadedSize, totalSize);
};
OnUploadTokenExpiredListener testTokenExpiredCallbackFunc = ^{
NSLog(@"*token expired.");
// get token and call resmeUploadWithAuth.
};
OnUploadRertyListener testUploadRertyListener = ^{
NSLog(@"retry begin.") ;
};
OnUploadRertyResumeListener testUploadRertyResumeListener = ^{
NSLog(@"retry resume.") ;
};
VODUploadListener *listener;
listener = [[VODUploadListener alloc] init];
listener.started = testUploadStartedCallbackFunc;
listener.success = testSuccessCallbackFunc;
listener.failure = testFailedCallbackFunc;
listener.progress = testProgressCallbackFunc;
listener.expire = testTokenExpiredCallbackFunc;
listener.retry = testUploadRertyListener;
listener.retryResume = testUploadRertyResumeListener;
アップロード SDK の初期化
以下、いずれかの方法で権限付与情報を入力します。
- AccessKey
簡単ですが安全ではありません。 この方法は、テスト環境で使用することを推奨します。
VODUploadClient *uploader; [uploader init:<accessKeyId> accessKeySecret:<accessKeySecret> listener:listener];
- トークン
安全ですが複雑です。 この方法は、本番環境で使用することを推奨します。 トークンの有効期限は一時的であり、ある期間に限り有効です。 そのため、トークンの送信は安全です。
VODUploadClient *uploader; [uploader init:<accessKeyId> accessKeySecret:<accessKeySecret> secretToken:<secretToken> expireTime:<expireTime> listener:listener];
- リストの管理
- アップロードするファイルの追加
注 アップロード可能なファイルサイズは 5 MB までです。
[uploader addFile:<uploadFilePath> endpoint:<endpoint> //Example: 'http://oss-cn-hangzhou.aliyuncs.com' bucket:<bucketName> //Enter the actual bucket name object:<objectKey>];
アップロード中、メディアセットの属性 (タイトル、タグ、説明、カテゴリ、カバー URL、カスタムデータ) を次の方法で取得します。addFile には、reload 関数が含まれており、最後のパラメーターは VodInfo のオブジェクトです。 定義は次のとおりです。@interface VodInfo : NSObject @property (nonatomic, strong) NSString* title; @property (nonatomic, strong) NSString* tags; @property (nonatomic, strong) NSString* desc; @property (nonatomic, strong) NSNumber* cateId; @property (nonatomic, strong) NSString* userData; @property (nonatomic, strong) NSString* coverUrl;
- アップロードしたファイルの削除
[uploader deleteFile:<index>];
- リスト内の 1 つのファイルのアップロードをキャンセル
[uploader cancelFile:<index>];
- リスト内で 1 つのファイルのアップロードを再開
[uploader resumeFile:<index>];
- アップロードファイルリストの取得
[uploader listFiles];
- アップロードファイルリストの消去
[uploader clearFiles];
- アップロードするファイルの追加
アップロードの制御
- アップロードの開始
[uploader start];
- アップロードの停止
[uploader stop];
- アップロードの一時停止
[uploader pause];
- アップロードの再開
[uploader resume];
- トークンが無効になった後のアップロードの再開
[uploader resumeWithToken:<accessKeyId> accessKeySecret:<accessKeySecret> secretToken:<secretToken> expireTime:<expireTime>]