初期化
SDK を使用する前に、SDK で OSS サービスを取得して、署名方法やデフォルトのデータセンターのドメインなど、いくつかの設定を初期化する必要があります。
アプリケーションのライフサイクル全体で、OSS iOS SDK を使用する前に一度これらの項目を初期化する必要があります。
1. OSS サービスの取得
OSS iOS SDK ではサービス ID を使用してさまざまな機能を提供します。取得方法は次のとおりです。
id<ALBBOSSServiceProtocol> ossService = [ALBBOSSServiceProvider getService];
アプリケーションのライフサイクルでは、この ossService を取得すると、OSS サービスを何回でも使用できます。
2. データセンターのドメイン名の設定
OSS の公式サイトでバケットを作成するときに、単価、リクエスト元の分布、および応答のレイテンシに基づいてデータセンターを選択できます。バケットを作成するときにデータセンターを指定しないと、OSS は自動的にバケットをデフォルトのデータセンターに割り当てます。現在のデフォルトのデータセンターは oss-cn-hangzhou です。
したがって、OSS のデータ操作を実行するときは、ドメイン名を使用してバケットのデータセンターを指定する必要があります。これは次のインターフェイスを使用して行うことができます。
[ossService setGlobalDefaultBucketHostId:@"oss-cn-qingdao.aliyuncs.com"]; // Specifies that your bucket is placed in the Qingdao data center
このインターフェイスを呼び出してドメイン名を設定していない場合、OSS iOS SDK では hostId がデフォルトで ‘oss-cn-hangzhou.aliyuncs.com’ に設定されます。
3. トークンジェネレーターの設定
トークンジェネレーターの設定の詳細については、このドキュメントの「アクセス制御」の章を参照してください。今のところは、初期化の間にこの操作を実行する必要があることだけを憶えておけば十分です。
[ossService setAuthenticationType:ORIGIN_AKSK];
[ossService setGenerateToken:^(NSString *method, NSString *md5, NSString *type, NSString *date, NSString *xoss, NSString *resource){
// Requires specific implementation
}];
4. カスタム参照時刻の設定
OSS トークンの検証は時刻に依存するので、モバイル端末のシステム時刻が正しくないと、ユーザーが OSS サービスにアクセスできない可能性があります。そのため、SDK の時刻を設定できるインターフェイスが用意されています。ネットワーク経由で、ビジネスサーバーから現在のエポック時刻を取得して設定できます。その後、SDK 操作の間に、時刻がサーバー時刻と同期されます。
NSTimeInterval currentEpochTimeInSec = 1429605946.0;
[ossService setCustomStandardTimeWithEpochSec:currentEpochTimeInSec]; // The epoch time is counted in seconds from January 1, 1970 00:00:00 UTC
時刻では秒単位が使用されることに注意してください。