Cette rubrique explique comment configurer les callbacks de téléchargement.
Notes
-
Avant d'exécuter l'exemple de code présenté dans cette rubrique, vous devez créer une instance OSSClient en utilisant des méthodes telles que l'utilisation d'un nom de domaine personnalisé ou du Security Token Service (STS). Pour plus d'informations, consultez la section Initialisation (SDK iOS).
RemarqueLa région du bucket est déterminée par l'endpoint spécifié lors de l'initialisation.
Pour télécharger un objet, vous devez disposer de l'autorisation
oss:PutObject. Pour plus d'informations, consultez la section Attacher une politique personnalisée à un utilisateur RAM.
Exemples
L'exemple de code suivant montre comment configurer un callback de téléchargement :
OSSPutObjectRequest * request = [OSSPutObjectRequest new];
// Specify the name of the bucket. Example: examplebucket.
request.bucketName = @"examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampledir/exampleobject.txt.
request.objectKey = @"exampledir/exampleobject.txt";
request.uploadingFileURL = [NSURL fileURLWithPath:@"<filepath>"];
// Configure callback parameters.
request.callbackParam = @{
@"callbackUrl": @"<your server callback address>",
@"callbackBody": @"<your callback body>"
};
// Specify custom variables.
request.callbackVar = @{
@"<var1>": @"<value1>",
@"<var2>": @"<value2>"
};
request.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
OSSTask * task = [client putObject:request];
[task continueWithBlock:^id(OSSTask *task) {
if (task.error) {
OSSLogError(@"%@", task.error);
} else {
OSSPutObjectResult * result = task.result;
NSLog(@"Result - requestId: %@, headerFields: %@, servercallback: %@",
result.requestId,
result.httpResponseHeaderFields,
result.serverReturnJsonString);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [task waitUntilFinished];