すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:イメージプロセシング (iOS SDK)

最終更新日:Nov 30, 2025

Object Storage Service (OSS) が提供するイメージプロセシング (IMG) は、安全でコスト効率が高く、信頼性の高いサービスで、大量のイメージを処理するために使用できます。イメージを OSS にアップロードした後、インターネットに接続されたデバイスからいつでもどこでも RESTful API 操作を呼び出して、イメージを処理できます。

使用方法

標準の HTTP GET リクエストを使用して IMG にアクセスできます。イメージオブジェクト URL のクエリ文字列で IMG パラメーターを設定できます。

イメージオブジェクトのアクセス制御リスト (ACL) が非公開の場合、権限のあるユーザーのみがそのオブジェクトにアクセスできます。

  • 匿名アクセス

    OSSTask * task = [client presignPublicURLWithBucketName:@"examplebucket"
                                              withObjectKey:@"exampledir/example.jpg"
                                             withParameters:@{@"x-oss-process": @"image/resize,w_50"}];
    [task continueWithBlock:^id(OSSTask *task) {
        if (!task.error) {
            NSLog(@"download image success!");
            OSSGetObjectResult * getResult = task.result;
            NSLog(@"download image data: %@", getResult.downloadedData);
        } else {
            NSLog(@"download object failed, error: %@" ,task.error);
        }
        return nil;
    }];
    // [task waitUntilFinished];
  • 権限のあるアクセス

    SDK を使用してイメージを処理するには、イメージをダウンロードする際に request.xOssProcess() メソッドを呼び出して処理パラメーターを設定します。次のコードに例を示します。

    OSSGetObjectRequest * request = [OSSGetObjectRequest new];
    // イメージが格納されているバケットの名前を指定します。
    request.bucketName = @"examplebucket";
    // イメージの名前を指定します。イメージがバケットのルートディレクトリに格納されていない場合は、イメージの完全なパスを指定する必要があります。例:exampledir/example.jpg。
    request.objectKey = @"exampledir/example.jpg";
    // IMG パラメーターを指定します。
    request.xOssProcess = @"image/resize,m_lfit,w_100,h_100";
    OSSTask * getTask = [client getObject:request];
    [getTask continueWithBlock:^id(OSSTask *task) {
        if (!task.error) {
            NSLog(@"download image success!");
            OSSGetObjectResult * getResult = task.result;
            NSLog(@"download image data: %@", getResult.downloadedData);
        } else {
            NSLog(@"download object failed, error: %@" ,task.error);
        }
        return nil;
    }];
    // [getTask waitUntilFinished];
    // [request cancel];

処理済みイメージの保存

次のサンプルコードは、処理済みイメージを保存する方法の例です。

OSSImagePersistRequest *request = [OSSImagePersistRequest new];
// ソースイメージが格納されているバケットの名前を指定します。
request.fromBucket = @"srcbucket";
// ソースイメージの名前を指定します。イメージがバケットのルートディレクトリに格納されていない場合は、イメージの完全なパスを指定する必要があります。例:exampledir/src.jpg。
request.fromObject = @"exampledir/src.jpg";
// 処理済みイメージを格納するバケットの名前を指定します。このバケットは、ソースイメージが格納されているバケットと同じリージョンにある必要があります。
request.toBucket = @"destbucket";
// 処理済みイメージの名前を指定します。
request.toObject = @"exampledir/dest.jpg";
// イメージを幅 100 ピクセルに比例してサイズ変更し、処理済みイメージを指定されたバケットに保存します。
request.action = @"image/resize,w_100";
// request.action = @"resize,w_100";
OSSTask * getTask = [client imageActionPersist:request];

[getTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    return nil;
}];
// [getTask waitUntilFinished];

IMG パラメーターを含む署名付きオブジェクト URL の生成

非公開オブジェクトの URL は署名する必要があります。IMG パラメーターを署名付き URL の末尾に直接追加することはできません。非公開のイメージオブジェクトを処理する場合は、署名に IMG パラメーターを追加する必要があります。

次のサンプルコードは、IMG パラメーターを含む署名付き URL を生成する方法の例です。

// イメージが格納されているバケットの名前を指定します。
NSString *bucketName = @"examplebucket";
// イメージの名前を指定します。イメージがバケットのルートディレクトリに格納されていない場合は、イメージの完全なパスを指定する必要があります。例:exampledir/example.jpg。
NSString *objectKey = @"exampledir/example.jpg";
// IMG パラメーターを含む署名付き URL を生成します。署名付き URL の有効期間を 1,800 秒に設定します。
OSSTask *task = [_client presignConstrainURLWithBucketName:bucketName withObjectKey:objectKey withExpirationInterval:30 * 60 withParameters:@{@"x-oss-process": @"image/resize,w_50"}];
NSLog(@"url: %@", task.result);

関連ドキュメント

サポートされている IMG パラメーターの詳細については、「IMG パラメーター」をご参照ください。