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

Object Storage Service:画像処理 (iOS SDK)

最終更新日:Aug 29, 2026

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 プロパティに IMG パラメーターを設定します。次のコードに例を示します。

    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 = @"image/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 パラメータ」をご参照ください。