Tous les produits
Search
Centre de documentation

Object Storage Service:Initialisation (SDK iOS)

Dernière mise à jour :Aug 18, 2026

OSSClient est le client iOS pour Object Storage Service (OSS). Il fournit des méthodes pour gérer les ressources telles que les buckets et les objets. Avant d'utiliser le SDK pour envoyer des requêtes à OSS, initialisez et configurez une instance OSSClient.

Remarque

Le cycle de vie d'une instance OSSClient doit correspondre à celui de votre application. Créez une instance OSSClient globale au démarrage de l'application et détruisez-la à la fin.

Initialiser un OSSClient

Important

Un terminal mobile constitue un environnement non fiable. Stocker directement sur le terminal votre AccessKeyId et AccessKeySecret pour signer les requêtes présente un risque de sécurité élevé. Pour renforcer la sécurité, utilisez l'authentification STS (Security Token Service) ou le mode autosigné.

Créez une instance OSSClient en suivant l'une des méthodes ci-dessous.

Créer un OSSClient à l'aide de STS

Le code suivant montre comment créer un OSSClient à l'aide de STS.

// Set yourEndpoint to the endpoint of the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
NSString *endpoint = @"yourEndpoint";
// The temporary AccessKey pair obtained from STS, which consists of an AccessKey ID and an AccessKey secret.
NSString *accessKeyId = @"yourAccessKeyId";
NSString *accessKeySecret = @"yourAccessKeySecret";
// The security token obtained from STS.
NSString *securityToken = @"yourSecurityToken";
NSString *region = @"yourRegion";

id<OSSCredentialProvider> credentialProvider = [[OSSStsTokenCredentialProvider alloc] initWithAccessKeyId:accessKeyId secretKeyId:accessKeySecret securityToken:securityToken];
OSSClientConfiguration *configuration = [OSSClientConfiguration new];
configuration.signVersion = OSSSignVersionV4;
OSSClient *client = [[OSSClient alloc] initWithEndpoint:endpoint credentialProvider:credentialProvider clientConfiguration:configuration];
client.region = region;

Créer un OSSClient à l'aide d'un nom de domaine personnalisé

Le code suivant montre comment créer un OSSClient à l'aide d'un nom de domaine personnalisé.

// Set yourEndpoint to a custom domain name.
NSString *endpoint = @"yourEndpoint";
// The temporary AccessKey pair obtained from STS, which consists of an AccessKey ID and an AccessKey secret.
NSString *accessKeyId = @"yourAccessKeyId";
NSString *accessKeySecret = @"yourAccessKeySecret";
// The security token obtained from STS.
NSString *securityToken = @"yourSecurityToken";
NSString *region = @"yourRegion";

id<OSSCredentialProvider> credentialProvider = [[OSSStsTokenCredentialProvider alloc] initWithAccessKeyId:accessKeyId secretKeyId:accessKeySecret securityToken:securityToken];
OSSClientConfiguration *configuration = [OSSClientConfiguration new];
configuration.signVersion = OSSSignVersionV4;
OSSClient *client = [[OSSClient alloc] initWithEndpoint:endpoint credentialProvider:credentialProvider clientConfiguration:configuration];
client.region = region;

Créer un OSSClient dans un environnement Apsara Stack ou de domaine privé

Le code suivant montre comment créer un OSSClient dans un environnement Apsara Stack ou de domaine privé.

// Set yourEndpoint to the endpoint of the region where the bucket is located.
NSString *endpoint = @"yourEndpoint";
// The temporary AccessKey pair obtained from STS, which consists of an AccessKey ID and an AccessKey secret.
NSString *accessKeyId = @"yourAccessKeyId";
NSString *accessKeySecret = @"yourAccessKeySecret";
// The security token obtained from STS.
NSString *securityToken = @"yourSecurityToken";
NSString *region = @"yourRegion";

id<OSSCredentialProvider> credentialProvider = [[OSSStsTokenCredentialProvider alloc] initWithAccessKeyId:accessKeyId secretKeyId:accessKeySecret securityToken:securityToken];
OSSClientConfiguration *configuration = [OSSClientConfiguration new];
// Skip CNAME resolution.
configuration.cnameExcludeList = @[endpoint];
configuration.signVersion = OSSSignVersionV4;
OSSClient *client = [[OSSClient alloc] initWithEndpoint:endpoint credentialProvider:credentialProvider clientConfiguration:configuration];
client.region = region;

Configurer un OSSClient

ClientConfiguration est la classe de configuration d'OSSClient. Utilisez cette classe pour configurer des paramètres tels que le proxy, le délai de connexion et le nombre maximal de connexions.

Paramètre

Description

Méthode

maxRetryCount

Nombre maximal de tentatives pour une requête ayant échoué. La valeur par défaut est 3.

configuration.maxRetryCount

maxConcurrentRequestCount

Nombre maximal de requêtes simultanées. La valeur par défaut est 5.

configuration.maxConcurrentRequestCount

enableBackgroundTransmitService

Indique s'il faut activer les tâches en arrière-plan. Par défaut, cette fonctionnalité est désactivée.

configuration.enableBackgroundTransmitService

backgroundSesseionIdentifier

Identifiant personnalisé pour la session en arrière-plan. La valeur par défaut est com.aliyun.oss.backgroundsession.

configuration.backgroundSesseionIdentifier

isHttpdnsEnable

Indique s'il faut activer HttpDNS.

  • true : HttpDNS est activé par défaut pour les versions 2.10.14 et antérieures.

  • false : HttpDNS est désactivé par défaut pour les versions 2.10.14 et ultérieures.

configuration.isHttpdnsEnable

timeoutIntervalForRequest

Délai d'expiration de la requête. La valeur par défaut est de 15 secondes.

configuration.timeoutIntervalForRequest

timeoutIntervalForResource

Délai d'expiration de la ressource. La valeur par défaut est de 7 jours.

configuration.timeoutIntervalForResource

proxyHost

Adresse hôte du serveur proxy.

configuration.proxyHost

proxyPort

Port du serveur proxy.

configuration.proxyPort

userAgentMark

En-tête User-Agent dans les requêtes HTTP.

configuration.userAgentMark

cnameExcludeList

Les éléments de cette liste ignorent la résolution du nom canonique (CNAME).

configuration.cnameExcludeList

crc64Verifiable

Indique s'il faut activer la vérification CRC64 (contrôle de redondance cyclique 64 bits). Valeurs possibles :

  • YES : Active la vérification CRC64.

  • NO (par défaut) : Désactive la vérification CRC64.

configuration.crc64Verifiable

isAllowUACarrySystemInfo

Indique s'il faut autoriser le User-Agent à transporter les informations système. Valeurs possibles :

  • YES : Autorise le User-Agent à transporter les informations système.

  • NO (par défaut) : Empêche le User-Agent de transporter les informations système.

configuration.isAllowUACarrySystemInfo

isFollowRedirectsEnable

Indique s'il faut activer la redirection HTTP. Valeurs possibles :

  • YES : Active la redirection HTTP.

  • NO (par défaut) : Désactive la redirection HTTP.

configuration.isFollowRedirectsEnable

Le code suivant montre comment utiliser ClientConfiguration pour configurer les paramètres d'OSSClient.

// Set yourEndpoint to the endpoint of the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
NSString *endpoint = @"yourEndpoint";
// The temporary AccessKey pair obtained from STS, which consists of an AccessKey ID and an AccessKey secret.
NSString *accessKeyId = @"yourAccessKeyId";
NSString *accessKeySecret = @"yourAccessKeySecret";
// The security token obtained from STS.
NSString *securityToken = @"yourSecurityToken";
NSString *region = @"yourRegion";

id<OSSCredentialProvider> credentialProvider = [[OSSStsTokenCredentialProvider alloc] initWithAccessKeyId:accessKeyId secretKeyId:accessKeySecret securityToken:securityToken];
OSSClientConfiguration *configuration = [OSSClientConfiguration new];
// Use Signature V4.
configuration.signVersion = OSSSignVersionV4;
// The maximum number of retries for a failed request.
configuration.maxRetryCount = 3;
// The maximum number of concurrent requests.
configuration.maxConcurrentRequestCount = 3;
// Specifies whether to enable background tasks.
configuration.enableBackgroundTransmitService = YES;
// The custom identifier for the background session.
configuration.backgroundSesseionIdentifier = @"yourBackgroundSesseionIdentifier";
// Specifies whether to enable HttpDNS.
configuration.isHttpdnsEnable = YES;
// The request timeout interval.
configuration.timeoutIntervalForRequest = 15;
// The resource timeout interval.
configuration.timeoutIntervalForResource = 24 * 60 * 60;
// The host address of the proxy server.
configuration.proxyHost = @"yourProxyHost";
// The port of the proxy server.
configuration.proxyPort = @8080;
// The User-Agent header in HTTP requests.
configuration.userAgentMark = @"yourUserAgent";
// The elements in this list will skip CNAME resolution.
configuration.cnameExcludeList = @[@"yourCname"];
// Specifies whether to enable CRC64 verification.
configuration.crc64Verifiable = YES;
// Specifies whether to allow the User-Agent to carry system information.
configuration.isAllowUACarrySystemInfo = YES;
// Specifies whether to enable HTTP redirection.
configuration.isFollowRedirectsEnable = NO;

OSSClient *client = [[OSSClient alloc] initWithEndpoint:endpoint credentialProvider:credentialProvider clientConfiguration:configuration];
client.region = region;

Activer la journalisation

Les terminaux mobiles fonctionnent dans des environnements complexes et le SDK OSS peut devenir indisponible dans certaines régions ou à certains moments. Pour aider les développeurs à diagnostiquer les problèmes, le SDK OSS peut enregistrer localement les journaux lorsque la journalisation est activée. Avant d'utiliser OSSClient, initialisez-le et appelez la méthode suivante pour activer la journalisation.

// Log format.
//2017/10/25 11:05:43:863  [Debug]: 17th time: <NSThread: 0x7f8099108580>{number = 3, name = (null)}
//2017/10/25 11:05:43:863  [Debug]: 15th time: <NSThread: 0x7f80976052c0>
//2017/10/25 11:05:43:863  [Debug]: ----------TestDebug------------
// Enable logging.
[OSSLog enableLog];                
Remarque
  • Les fichiers journaux sont stockés dans le dossier Caches/OSSLogs du bac à sable (sandbox).

  • Vous pouvez télécharger les fichiers vers votre propre serveur ou utiliser Alibaba Cloud Simple Log Service pour transférer les fichiers journaux.

OSSTask

  1. Tous les appels d'API renvoient un OSSTask.

    OSSTask * task = [client getObject:get];
  2. Vous pouvez configurer l'OSSTask.

    • Pour implémenter un rappel asynchrone, définissez une continuation pour l'OSSTask.

      [task continueWithBlock: ^(OSSTask *task) {
          // do something
          ...
          return nil;
      }];
    • Pour implémenter un rappel synchrone, attendez la fin de l'OSSTask.

      [task waitUntilFinished];