指定した日時まで公開

指定した日時まで公開する場合は publishBodyExpires(at:_:) メソッドを使います。下記は、ファイルを 2099 年 12 月 31 日まで公開したい場合のサンプルです。サンプルのように、日時は NSDateComponents を使って指定します。

Swift:

  • // Assume that the KiiObject "object" has been instantiated.
    
    // Set the expiration time of the URL.
    var components = DateComponents()
    components.year = 2099
    components.month = 12
    components.day = 31
    components.hour = 23
    components.minute = 59
    components.second = 59
    (components as NSDateComponents).calendar = Calendar.current
    let date = (components as NSDateComponents).date!
    
    do{
      // Publish the KiiObject.
      let url = try object!.publishBodySynchronousExpires(at: date)
    }catch(let error as NSError){
      // Handle the error.
      return
    }
  • // Assume that the KiiObject "object" has been instantiated.
    
    // Set the expiration time of the URL.
    var components = DateComponents()
    components.year = 2099
    components.month = 12
    components.day = 31
    components.hour = 23
    components.minute = 59
    components.second = 59
    (components as NSDateComponents).calendar = Calendar.current
    let date = (components as NSDateComponents).date!
    
    // Publish the KiiObject.
    object!.publishBodyExpires(at: date) { (object : KiiObject , url : String?, error : Error?) -> Void in
      if error != nil {
        // Handle the error.
        return
      }
    }

Objective-C:

  • // Assume that the KiiObject "object" has been instantiated.
    
    // Set the expiration time of the URL.
    NSDateComponents *components = [[NSDateComponents alloc] init];
    [components setYear:2099];
    [components setMonth:12];
    [components setDay:31];
    [components setHour:23];
    [components setMinute:59];
    [components setSecond:59];
    [components setCalendar:[NSCalendar currentCalendar]];
    NSDate *date = [components date];
    
    NSError *error = nil;
    
    // Publish the KiiObject.
    NSString *url = [object publishBodySynchronousExpiresAt:date andError:&error];
    if (error != nil) {
      // Handle the error.
      return;
    }
  • // Assume that the KiiObject "object" has been instantiated.
    
    // Set the expiration time of the URL.
    NSDateComponents *components = [[NSDateComponents alloc] init];
    [components setYear:2099];
    [components setMonth:12];
    [components setDay:31];
    [components setHour:23];
    [components setMinute:59];
    [components setSecond:59];
    [components setCalendar:[NSCalendar currentCalendar]];
    NSDate *date = [components date];
    
    // Publish the KiiObject.
    [object publishBodyExpiresAt:date
                       withBlock:^(KiiObject *obj, NSString *url, NSError *error) {
      if (error != nil) {
        // Handle the error.
        return;
      }
    }];

基本的な手順は下記のとおりです。

  1. Object Body をアップロードします。
  2. publishBodyExpires(at:_:) メソッドを呼びファイルを公開します。

なお、ファイルを公開するユーザーはこの KiiObject に対する KiiACLObjectActionRead アクションを許可されている必要があります(公開後の URL は、誰でも Web ブラウザから参照できます)。アクセス権限の詳細は KiiObject の ACL 設定 を参照してください。