Tous les produits
Search
Centre de documentation

Object Storage Service:Append upload (Browser.js SDK)

Dernière mise à jour :Aug 18, 2026

Le chargement par ajout permet d'ajouter du contenu à la fin d'un objet ajoutable existant via la méthode AppendObject.

Précautions

  • Pour effectuer un chargement par ajout avec le kit de développement logiciel (SDK) Browser.js, vous devez exposer l'en-tête x-oss-next-append-position dans les règles CORS du bucket. Sans cette configuration, la position d'ajout nextAppendPosition est inaccessible et le chargement échoue. Pour plus d'informations, consultez Configurer le partage des ressources cross-origin.

  • Cette rubrique illustre la création d'une instance OSSClient avec un endpoint OSS. Pour d'autres configurations, telles que l'utilisation d'un domaine personnalisé ou l'authentification via des identifiants Security Token Service (STS), reportez-vous à Initialisation (SDK Browser.js).

  • Cette rubrique montre comment créer une instance OSSClient à partir d'un endpoint OSS. Si vous souhaitez utiliser des configurations alternatives, comme un domaine personnalisé ou une authentification STS, consultez Configuration du client.

  • Lorsque l'objet n'existe pas encore, l'opération AppendObject crée automatiquement un nouvel objet ajoutable.

  • Si l'objet existe déjà, les cas suivants s'appliquent lors de l'appel à l'opération AppendObject :

    • Pour un objet ajoutable dont la position spécifiée correspond exactement à sa longueur actuelle, le contenu est ajouté à la fin de l'objet.

    • Si l'objet est ajoutable mais que la position indiquée diffère de sa longueur actuelle, l'exception PositionNotEqualToLength est retournée.

    • Dans le cas où l'objet n'est pas de type ajoutable (par exemple un objet Normal issu d'un chargement simple), le système renvoie l'exception ObjectNotAppendable.

Permissions

Par défaut, un compte Alibaba Cloud dispose de toutes les permissions. En revanche, les utilisateurs RAM et les rôles RAM rattachés à ce compte ne possèdent aucune autorisation initiale. L'administrateur du compte doit donc accorder explicitement les droits nécessaires au moyen de politiques RAM ou d'une Bucket Policy.

API

Action

Description

AppendObject

oss:PutObject

Cette opération charge un objet en l'ajoutant à un objet existant.

oss:PutObjectTagging

Cette permission devient obligatoire lorsque vous spécifiez des tags d'objet via x-oss-tagging pendant un chargement par ajout.

Exemples

Le code suivant explique comment réaliser un chargement par ajout :

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.17.1.min.js"></script>
  </head>
  <body>
    <input type="file" id="file" />
    <button id="upload">Upload</button>
    <script>
      const upload = document.getElementById("upload");

      const client = new OSS({
        // Set yourRegion to the region where the bucket is located. For example, if the bucket is in the China (Hangzhou) region, set yourRegion to oss-cn-hangzhou.
        region: 'yourRegion',
        authorizationV4: true,
        // The temporary AccessKey pair (AccessKey ID and AccessKey secret) obtained from STS.
        accessKeyId: 'yourAccessKeyId',
        accessKeySecret: 'yourAccessKeySecret',
        // The security token obtained from STS.
        stsToken: 'yourSecurityToken',
        // Specify the bucket name.
        bucket: 'examplebucket'
      });

      upload.addEventListener("click", async () => {
        const target = file.files[0];
        // Specify the full path of the object. The full path cannot contain the bucket name. Example: examplefile.txt.
        // The first append upload. The return value indicates the position for the next append operation.
        const result = await client.append("examplefile.txt", target);

        await client.append("123", result, {
          // The second append upload. The position for subsequent append operations is the length of the object (Content-Length) before the append operation.
          position: result.nextAppendPosition,
        });
      });
    </script>
  </body>
</html>

Références

  • Retrouvez l'exemple complet de code pour le chargement par ajout dans les exemples GitHub.

  • Pour plus de détails sur l'opération API correspondante, consultez AppendObject.