Todos los productos
Search
Centro de documentos

Object Storage Service:Inicialización (iOS SDK)

Última actualización: Sep 03, 2026

OSSClient es el cliente de iOS para Object Storage Service (OSS). Proporciona métodos para gestionar recursos como buckets y objetos. Antes de usar el SDK para enviar solicitudes a OSS, inicialice y configure una instancia de OSSClient.

Nota

El ciclo de vida de una instancia de OSSClient debe coincidir con el ciclo de vida de su aplicación. Cree una instancia global de OSSClient cuando inicie la aplicación y destruya la instancia cuando la aplicación finalice.

Inicializar un OSSClient

Importante

Un dispositivo móvil es un entorno no confiable. Almacenar su AccessKeyId y AccessKeySecret directamente en el dispositivo para firmar solicitudes genera un alto riesgo de seguridad. Para mayor seguridad, utilice la autenticación de Security Token Service (STS) o el modo autofirmado.

Cree una instancia de OSSClient mediante uno de los siguientes métodos.

Crear un OSSClient mediante STS

A continuación se muestra cómo crear un OSSClient mediante 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;

Crear un OSSClient con un nombre de dominio personalizado

A continuación se muestra cómo crear un OSSClient con un nombre de dominio personalizado.

// 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;

Crear un OSSClient en un entorno de Apsara Stack o de dominio privado

A continuación se muestra cómo crear un OSSClient en un entorno de Apsara Stack o de dominio privado.

// 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;

Configurar un OSSClient

ClientConfiguration es la clase de configuración para OSSClient. Utilice esta clase para configurar parámetros como el proxy, el tiempo de espera de conexión y el número máximo de conexiones.

Parámetro

Descripción

Método

maxRetryCount

Número máximo de reintentos para una solicitud con errores. El valor predeterminado es 3.

configuration.maxRetryCount

maxConcurrentRequestCount

Número máximo de solicitudes simultáneas. El valor predeterminado es 5.

configuration.maxConcurrentRequestCount

enableBackgroundTransmitService

Especifica si se habilitan las tareas en segundo plano. De forma predeterminada, esta función está deshabilitada.

configuration.enableBackgroundTransmitService

backgroundSesseionIdentifier

Identificador personalizado para la sesión en segundo plano. El valor predeterminado es com.aliyun.oss.backgroundsession.

configuration.backgroundSesseionIdentifier

isHttpdnsEnable

Especifica si se habilita HttpDNS.

  • true: HttpDNS está habilitado de forma predeterminada en las versiones 2.10.14 y anteriores.

  • false: HttpDNS está deshabilitado de forma predeterminada en las versiones 2.10.14 y posteriores.

configuration.isHttpdnsEnable

timeoutIntervalForRequest

Intervalo de tiempo de espera de la solicitud. El valor predeterminado es 15 segundos.

configuration.timeoutIntervalForRequest

timeoutIntervalForResource

Intervalo de tiempo de espera del recurso. El valor predeterminado es 7 días.

configuration.timeoutIntervalForResource

proxyHost

Dirección del host del servidor proxy.

configuration.proxyHost

proxyPort

Puerto del servidor proxy.

configuration.proxyPort

userAgentMark

Encabezado User-Agent en las solicitudes HTTP.

configuration.userAgentMark

cnameExcludeList

Los elementos de esta lista omitirán la resolución de nombre canónico (CNAME).

configuration.cnameExcludeList

crc64Verifiable

Especifica si se habilita la verificación de redundancia cíclica de 64 bits (CRC64). Valores válidos:

  • YES: Habilita la verificación CRC64.

  • NO (predeterminado): Deshabilita la verificación CRC64.

configuration.crc64Verifiable

isAllowUACarrySystemInfo

Especifica si se permite que User-Agent incluya información del sistema. Valores válidos:

  • YES: Permite que User-Agent incluya información del sistema.

  • NO (predeterminado): Impide que User-Agent incluya información del sistema.

configuration.isAllowUACarrySystemInfo

isFollowRedirectsEnable

Especifica si se habilita la redirección HTTP. Valores válidos:

  • YES: Habilita la redirección HTTP.

  • NO (predeterminado): Deshabilita la redirección HTTP.

configuration.isFollowRedirectsEnable

A continuación se muestra cómo utilizar ClientConfiguration para configurar los parámetros de 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;

Habilitar el registro

Los dispositivos móviles operan en entornos complejos, y el SDK de OSS puede no estar available en ciertas regiones o momentos. Para ayudar a los desarrolladores a diagnosticar problemas, el SDK de OSS puede registrar información localmente cuando el registro está habilitado. Antes de usar OSSClient, inicialícelo y llame al siguiente método para habilitar el registro.

// 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];                
Nota
  • Los archivos de registro se almacenan en la carpeta Caches/OSSLogs del sandbox.

  • Puede cargar los archivos en su propio servidor o utilizar Alibaba Cloud Simple Log Service para cargar los archivos de registro.

OSSTask

  1. Todas las llamadas a la API devuelven un OSSTask.

    OSSTask * task = [client getObject:get];
  2. Puede configurar OSSTask.

    • Para implementar una devolución de llamada asíncrona, establezca una continuación para OSSTask.

      [task continueWithBlock: ^(OSSTask *task) {
          // do something
          ...
          return nil;
      }];
    • Para implementar una devolución de llamada síncrona, espere a que OSSTask finalice.

      [task waitUntilFinished];