Un bucket est un conteneur pour les objets stockés dans Object Storage Service (OSS). Tous les objets d'OSS sont contenus dans des buckets. Les buckets sont répertoriés par ordre alphabétique. Vous pouvez lister les buckets appartenant au compte Alibaba Cloud actuel dans toutes les régions et répondant à des conditions spécifiques.
Notes
-
Avant d'exécuter l'exemple de code de cette rubrique, créez une instance OSSClient en utilisant une méthode telle qu'un nom de domaine personnalisé ou le Security Token Service (STS). Pour plus d'informations, consultez Initialisation (SDK iOS).
RemarqueLes buckets répertoriés proviennent de la région spécifiée par l'endpoint dans votre configuration d'initialisation.
Lister tous les buckets d'un compte Alibaba Cloud
L'exemple de code suivant montre comment lister les buckets de toutes les régions du compte Alibaba Cloud actuel :
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// List all buckets in all regions within the current account.
OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetServiceResult * result = task.result;
NSLog(@"buckets: %@", result.buckets);
NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
[result.buckets enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSDictionary * bucketInfo = obj;
NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
}];
} else {
NSLog(@"get service failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [getServiceTask waitUntilFinished];
Lister les buckets dont le nom contient un préfixe spécifié
L'exemple de code suivant montre comment lister les buckets dont le nom contient le préfixe « example » dans toutes les régions du compte Alibaba Cloud actuel :
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
getService.prefix = @"example";
OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetServiceResult * result = task.result;
NSLog(@"buckets: %@", result.buckets);
NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
[result.buckets enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSDictionary * bucketInfo = obj;
NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
}];
} else {
NSLog(@"get service failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [getServiceTask waitUntilFinished];
Lister les buckets dont le nom suit alphabétiquement celui spécifié par marker
L'exemple de code suivant montre comment lister les buckets dont le nom suit alphabétiquement le bucket nommé « examplebucket » dans toutes les régions du compte Alibaba Cloud actuel :
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
getService.marker = @"examplebucket";
OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetServiceResult * result = task.result;
NSLog(@"buckets: %@", result.buckets);
NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
[result.buckets enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSDictionary * bucketInfo = obj;
NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
}];
} else {
NSLog(@"get service failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [getServiceTask waitUntilFinished];
Lister un nombre spécifique de buckets
L'exemple de code suivant montre comment lister les buckets de toutes les régions du compte Alibaba Cloud actuel et définir le nombre maximal de buckets à lister sur 500 :
OSSGetServiceRequest * getService = [OSSGetServiceRequest new];
// List all buckets in all regions for the current account. Limit the number of buckets to 500. Default: 100. Max: 1000.
getService.maxKeys = 500;
OSSTask * getServiceTask = [client getService:getService];
[getServiceTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
OSSGetServiceResult * result = task.result;
NSLog(@"buckets: %@", result.buckets);
NSLog(@"owner: %@, %@", result.ownerId, result.ownerDispName);
[result.buckets enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSDictionary * bucketInfo = obj;
NSLog(@"BucketName: %@", [bucketInfo objectForKey:@"Name"]);
NSLog(@"CreationDate: %@", [bucketInfo objectForKey:@"CreationDate"]);
NSLog(@"Location: %@", [bucketInfo objectForKey:@"Location"]);
}];
} else {
NSLog(@"get service failed, error: %@", task.error);
}
return nil;
}];
// Implement synchronous blocking to wait for the task to complete.
// [getServiceTask waitUntilFinished];
Références
Pour plus d'informations sur l'opération API permettant de lister les buckets, consultez ListBuckets (GetService).
Pour plus d'informations sur l'initialisation de l'instance OSSClient, consultez Initialiser une instance OSSClient.