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

Object Storage Service:OSS SDK for iOSを使用してイメージを処理する

最終更新日:Aug 28, 2024

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];
  • 許可されたアクセス

    OSS SDK for iOSを使用してイメージを処理する場合、イメージのダウンロード時にrequest.xOssProcess() メソッドでIMGパラメーターを指定します。 サンプルコード:

    OSSGetObjectRequest * request = [OSSGetObjectRequest new];
    // Specify the name of the bucket in which the image is stored. 
    request.bucketName = @"examplebucket";
    // Specify the name of the image. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/example.jpg.    
    request.objectKey = @"exampledir/example.jpg";
    // Specify IMG parameters. 
    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];
// Specify the name of the bucket in which the source image is stored. 
request.fromBucket = @"srcbucket";
// Specify the name of the source image. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/src.jpg. 
request.fromObject = @"exampledir/src.jpg";
// Specify the name of the bucket that stores the processed image. The bucket must be located in the same region as the bucket in which the source image is stored. 
request.toBucket = @"destbucket";
// Specify the name of the processed image.
request.toObject = @"exampledir/dest.jpg";
// Proportionally resize the image to a width of 100 pixels and save the processed image to the specified bucket. 
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に署名する必要があります。 署名付きURLの末尾にIMGパラメーターを直接追加することはできません。 プライベートイメージオブジェクトを処理する場合は、署名にIMGパラメータを追加します。

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

// Specify the name of the bucket in which the image is stored. 
NSString *bucketName = @"examplebucket";
// Specify the name of the image. If the image is not stored in the root directory of the bucket, you must specify the full path of the image. Example: exampledir/example.jpg. 
NSString *objectKey = @"exampledir/example.jpg";
// Generate a signed URL that includes IMG parameters. Set the validity period of the signed URL to 1,800 seconds. 
OSSTask *task = [_client presignConstrainURLWithBucketName:bucketName withObjectKey:objectKey withExpirationInterval:30 * 60 withParameters:@{@"x-oss-process": @"image/resize,w_50"}];
NSLog(@"url: %@", task.result);

関連ドキュメント

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