Tous les produits
Search
Centre de documentation

Object Storage Service:Restaurer des objets (SDK Python V2)

Dernière mise à jour :Sep 22, 2026

Vous devez restaurer les objets des classes de stockage Archive, Cold Archive et Deep Cold Archive avant de pouvoir les lire. La restauration d'un objet crée une copie temporaire. Cette copie coexiste avec l'objet d'origine et est automatiquement supprimée à l'expiration de l'état restauré. Cette rubrique explique comment utiliser le SDK Python OSS pour restaurer ces objets.

Notes

  • Le code exemple de cette rubrique utilise un endpoint public de la région Chine (Hangzhou) (ID de région : cn-hangzhou) à titre d'exemple. Pour accéder à OSS depuis un autre produit Alibaba Cloud dans la même région, utilisez un endpoint interne. Pour plus d'informations sur les endpoints de chaque région OSS, consultez Régions et endpoints OSS.

  • Pour restaurer un objet, vous devez disposer de l'autorisation oss:RestoreObject. Pour plus d'informations, consultez Accorder des autorisations personnalisées à un utilisateur RAM.

Définition de la méthode

restore_object(request: RestoreObjectRequest, **kwargs) → RestoreObjectResult

Paramètres de requête

Paramètre

Type

Description

request

RestoreObjectRequest

Les paramètres de la requête. Pour plus d'informations, consultez RestoreObjectRequest

Le tableau suivant décrit les paramètres courants de RestoreObjectRequest.

Paramètre

Type

Description

bucket

str

Nom du bucket.

key

str

Nom de l'objet.

version_id

str

ID de version de l'objet à restaurer. Si ce paramètre n'est pas défini, la dernière version de l'objet est restaurée.

restore_request

RestoreRequest

Paramètres de la requête de restauration. Pour plus d'informations, consultez RestoreRequest.

Le tableau suivant décrit les paramètres de RestoreRequest.

Paramètre

Type

Description

days

int

Durée pendant laquelle l'objet reste dans l'état restauré. Pour plus d'informations, consultez Restaurer des objets.

tier

str

Délai de restauration de l'objet. Pour plus d'informations, consultez Restaurer des objets.

Valeurs de retour

Type

Description

RestoreObjectResult

Valeur de retour. Pour plus d'informations, consultez RestoreObjectResult.

Pour la définition complète de la méthode, consultez restore_object.py.

Exemple de code

Utilisez le code suivant pour restaurer des objets des classes de stockage Archive, Cold Archive ou Deep Cold Archive :

import time
import argparse
import alibabacloud_oss_v2 as oss

# Create a command-line argument parser.
parser = argparse.ArgumentParser(description="restore object sample")
# Add the required command-line arguments.
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS.')
parser.add_argument('--key', help='The name of the object.', required=True)

def main():
    # Parse the incoming command-line arguments.
    args = parser.parse_args()

    # Load authentication information from environment variables.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Use the default SDK configurations.
    cfg = oss.config.load_default()
    # Set the credential provider to environment variable-based authentication.
    cfg.credentials_provider = credentials_provider
    # Set the region.
    cfg.region = args.region
    # If an endpoint is provided, set the endpoint as a configuration item.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Create an OSS client.
    client = oss.Client(cfg)

    # Execute the request to restore the object.
    result = client.restore_object(oss.RestoreObjectRequest(
        bucket=args.bucket,
        key=args.key,
        restore_request=oss.RestoreRequest(
            days=1,
            # Optional: Set the restoration priority for Cold Archive or Deep Cold Archive objects. Valid values: Expedited, Standard, and Bulk. Default value: Standard.
            # tier="Bulk",
        )
    ))

    # Print the result of the restore request.
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' version id: {result.version_id},'
          f' restore priority: {result.restore_priority},'
    )

    # Loop to check whether the object is restored.
    while True:
        # Get the object header.
        result = client.head_object(oss.HeadObjectRequest(
            bucket=args.bucket,
            key=args.key,
        ))

        # Check the restored state.
        if result.restore and result.restore != 'ongoing-request="true"':
            print('Restore is successful')
            break
        # Check again after 5 seconds.
        time.sleep(5)
        print(result.restore)

# Program entry point.
if __name__ == "__main__":
    main()

Références