Tous les produits
Search
Centre de documentation

Object Storage Service:UpdateTableMetadataLocation

Dernière mise à jour :Aug 18, 2026

Met à jour l'emplacement du fichier de métadonnées d'une table spécifiée.

Notes d'utilisation

  • Redirige une table vers un nouveau fichier de métadonnées, ce qui permet l'évolution du schéma et les validations de données (commits).

  • Requiert le versionToken actuel pour le verrouillage optimiste, afin de garantir la cohérence lors des mises à jour concurrentes.

  • Obtenez le versionToken en appelant l'opération GetTableMetadataLocation ou GetTable.

  • Le nouveau metadataLocation doit pointer vers un fichier JSON de métadonnées Iceberg valide.

Permissions

API

Action

Description

UpdateTableMetadataLocation

oss:UpdateTableMetadataLocation

Met à jour l'emplacement des métadonnées d'une table. Cette opération vérifie également la politique de la table.

Syntaxe de la requête

PUT /tables/{tableBucketARN}/{namespace}/{name}/metadata-location HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

{
   "versionToken": "string",
   "metadataLocation": "string"
}

Paramètres de la requête

Parameter

Type

Required

Example

Description

tableBucketARN

String

Yes

acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket

L'ARN du bucket de la table. Format : acs:osstables:{region}:{uid}:bucket/{bucketName}. Ce paramètre figure dans l'URI.

namespace

String

Yes

my_namespace

Le nom du namespace de la table. Ce paramètre figure dans l'URI.

name

String

Yes

my_table

Le nom de la table. Ce paramètre figure dans l'URI.

versionToken

String

Yes

aaabbb

Le jeton de version actuel pour le verrouillage optimiste. Obtenez ce jeton en appelant l'opération GetTableMetadataLocation ou GetTable. Ce paramètre figure dans le corps de la requête.

metadataLocation

String

Yes

oss://data-bucket/metadata/00001-xxx.metadata.json

Le chemin OSS vers le nouveau fichier de métadonnées. Doit pointer vers un fichier JSON de métadonnées Iceberg valide. Ce paramètre figure dans le corps de la requête.

Paramètres de la réponse

Parameter

Type

Example

Description

metadataLocation

String

oss://bucket/metadata/00000-xxx.metadata.json

Le chemin OSS mis à jour du fichier de métadonnées.

name

String

my_table

Le nom de la table.

namespace

Array

-

Le namespace de la table, renvoyé sous forme de tableau.

tableARN

String

acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/table/table-id

L'ARN de la table.

versionToken

String

abc123def456

Le jeton de version mis à jour.

Exemples

Exemple de requête

PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace/my_table/metadata-location HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****

{
   "versionToken": "aaabbb",
   "metadataLocation": "oss://data-bucket/metadata/00001-xxx.metadata.json"
}

Exemple de réponse

HTTP/1.1 200 OK
Server: AliyunOSS
x-oss-request-id: 5C06A3B67B8B5A3DA422****
x-oss-server-time: 3
Content-Type: application/json

{
   "metadataLocation": "oss://data-bucket/metadata/00001-xxx.metadata.json",
   "name": "my_table",
   "namespace": ["my_namespace"],
   "tableARN": "acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/table/table_id",
   "versionToken": "cccbbb"
}

SDK

Les SDK suivants prennent en charge l'opération UpdateTableMetadataLocation :

CLI ossutil

Pour la commande ossutil correspondante, consultez update-table-metadata-location.

Codes d'erreur

Error code

HTTP status code

Description

BadRequestException

400

La requête n'est pas valide ou est mal formée.

ForbiddenException

403

L'appelant ne dispose pas des autorisations requises pour effectuer cette opération.

NotFoundException

404

La ressource demandée n'existe pas.

ConflictException

409

La requête entre en conflit avec une opération d'écriture précédente.