Image Processing (IMG), fourni par Object Storage Service (OSS), est un service sécurisé, économique et hautement fiable pour le traitement de grandes quantités d'images. Une fois vos images chargées sur OSS, appelez les opérations d'API RESTful pour les traiter à tout moment depuis n'importe quel appareil connecté à Internet.
Utilisation
Accédez au service IMG via des requêtes GET standard. Configurez les paramètres IMG directement dans la chaîne de requête de l'URL de l'objet image.
Si la liste de contrôle d'accès (ACL) d'un objet image est privée, seuls les utilisateurs autorisés peuvent y accéder.
-
Accès anonyme
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]; -
Accès autorisé
Pour traiter une image avec le SDK, définissez les paramètres IMG sur la propriété
request.xOssProcesslors du téléchargement de l'image. L'exemple de code suivant illustre cette procédure :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];
Enregistrer les images traitées
L'exemple de code ci-dessous montre comment enregistrer les images après traitement :
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];
Générer une URL signée incluant des paramètres IMG
Les URL des objets privés doivent être signées. Il est impossible d'ajouter directement des paramètres IMG à la fin d'une URL signée. Pour traiter un objet image privé, intégrez les paramètres IMG dans la signature elle-même.
Voici un exemple de génération d'une URL signée contenant des paramètres IMG :
// 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);
Références
Pour plus d'informations sur les paramètres IMG pris en charge, consultez la rubrique Paramètres IMG.