OSS attribue à chaque bucket un ensemble de noms de domaine d'accès. Vous pouvez ainsi accéder aux ressources OSS avec flexibilité, en fonction de vos besoins métier et de votre environnement réseau. Cette rubrique décrit le format, les scénarios d'application et les méthodes de configuration de chaque type de domaine pour vous aider à choisir la méthode d'accès appropriée.
Concepts clés
Une adresse d'accès OSS standard se compose de plusieurs éléments hiérarchiques. Pour accéder correctement à OSS, il est essentiel de bien comprendre les quatre concepts suivants :
Concept | Description | Format | Objectif |
ID de région | Identifiant général de la région |
| Utilisé pour des scénarios tels que les signatures V4 dans les SDK et ossutil |
ID de région dédié | Identifiant de région dédié OSS |
| Utilisé pour composer les endpoints, les paramètres de requête API et les paramètres de réponse |
Endpoint | Adresse d'accès au service |
| Configuré dans les SDK et ossutil pour établir une connexion réseau avec le service OSS |
Nom de domaine du bucket | Adresse d'accès d'un bucket spécifique |
| Utilisé pour l'accès direct via navigateur, la génération d'URL signées, l'hébergement de sites web statiques et la résolution CNAME de domaine personnalisé |
Ces quatre concepts forment une hiérarchie : l'ID de région identifie un emplacement géographique, auquel OSS associe un ID de région dédié. L'ID de région dédié est combiné au suffixe de domaine pour former l'endpoint (adresse d'accès au service). Pour accéder à un bucket spécifique, utilisez le nom de domaine du bucket (adresse d'accès à la ressource), formé en combinant le nom du bucket avec l'endpoint.
Pour connaître les ID de région de chaque région, consultez Régions et endpoints.
Prérequis
Avant d'accéder à OSS via une API ou un SDK, vous devez obtenir une AccessKey pour l'authentification. Une AccessKey se compose d'un AccessKey ID et d'un AccessKey Secret.
Pour obtenir une AccessKey :
Connectez-vous à la page de gestion des AccessKey de la console Resource Access Management (RAM).
Cliquez sur Create AccessKey pour créer une nouvelle AccessKey, ou activez une AccessKey désactivée.
Cochez la case I acknowledge the security risks of using an Alibaba Cloud account AccessKey, puis cliquez sur Continue using the Alibaba Cloud account AccessKey.
Pour plus d'informations, consultez Créer une paire de clés AccessKey.
Types de domaines
OSS propose différents types de noms de domaine d'accès en fonction des environnements réseau et des exigences de performance.
En raison d'un changement de politique visant à améliorer la conformité et la sécurité, à partir du 20 mars 2025, les nouveaux utilisateurs d'OSS **doivent utiliser un nom de domaine personnalisé (CNAME) pour effectuer des opérations d'API de données sur les buckets OSS situés dans les régions de Chine continentale. Les endpoints publics par défaut sont restreints pour ces opérations. Consultez l'annonce officielle pour obtenir la liste complète des opérations concernées. Si vous accédez à vos données via HTTPS, vous devez associer un certificat SSL valide à votre nom de domaine personnalisé. Cette mesure est obligatoire pour l'accès via la console OSS, car la console impose l'utilisation du protocole HTTPS.
Type de domaine | Scénarios applicables | Format du nom de domaine | Caractéristiques de facturation | Activation requise |
Accès via le réseau public depuis des applications web, des clients mobiles, etc. |
| Facturé selon le trafic du réseau public | Disponible par défaut | |
Accès via le réseau interne au sein de la même région Alibaba Cloud (par exemple, depuis ECS) |
| Aucun frais de trafic | Disponible par défaut | |
Téléchargement et upload haute vitesse inter-régions et transfrontaliers |
| Facturé selon l'accélération de transfert | Activez la fonctionnalité d'accélération de transfert | |
Association de nom de domaine personnalisé (comme l'hébergement de ressources statiques) |
| Facturé selon le trafic du réseau public | ||
Accès à OSS dans des environnements réseau IPv6 |
| L'accès via le réseau public est facturé selon le trafic du réseau public ; l'accès via le réseau interne n'engendre aucun frais de trafic | Pris en charge dans certaines régions |
Endpoint public
Conçu pour l'accès Internet, cet endpoint convient aux scénarios tels que les applications web, les clients mobiles et l'accès inter-régions. Les SDK utilisent l'endpoint public par défaut. Il suffit de spécifier l'ID de région pour terminer la configuration, sans indiquer explicitement l'endpoint.
Endpoint interne
Conçu pour le réseau interne d'Alibaba Cloud, cet endpoint est adapté aux scénarios où des instances ECS accèdent à OSS au sein de la même région. L'accès interne évite les frais de trafic du réseau public tout en offrant des connexions réseau plus stables et une latence réduite. Recommandations d'utilisation :
-
Optimisation de la configuration DNS
Lorsque vous utilisez un endpoint interne, nous vous recommandons vivement de configurer les adresses DNS privées d'Alibaba Cloud (
100.100.2.136et100.100.2.138) afin de garantir l'obtention de la bonne adresse VIP et d'éviter les exceptions d'accès à OSS causées par des problèmes de résolution DNS. -
Exhaustivité de la configuration du routage du segment réseau VIP
OSS attribue une plage d'adresses fixe pour le segment réseau VIP interne de chaque région, et le système commute dynamiquement les adresses IP au sein du segment VIP spécifié. Lorsque des appareils sur site et des centres de données accèdent à OSS via le réseau interne, la configuration du routage doit couvrir l'intégralité du segment réseau VIP ; sinon, un routage réseau incomplet peut entraîner des interruptions de connexion. Pour obtenir les informations sur le segment réseau VIP interne de chaque région, consultez Régions et endpoints.
ImportantAssurez-vous que votre configuration de routage couvre l'intégralité du segment réseau VIP afin d'éviter les problèmes de connectivité réseau dus à une configuration incomplète. Si la disponibilité du service OSS est affectée en raison d'une configuration manquante du segment réseau VIP, les pertes qui en résultent seront à la charge de la partie configuratrice.
Lorsque vous accédez à OSS entre différentes régions via des connexions d'appairage VPC ou Cloud Enterprise Network (CEN), ajoutez le segment réseau VIP de l'endpoint interne OSS de la région homologue à la table de routage VPC. Le segment réseau VIP est fixe et la configuration du routage reste valide à long terme sans échecs de connectivité dus à des modifications de segment.
-
Configuration des règles de groupe de sécurité
Lorsque vous utilisez une instance ECS pour accéder à OSS via le réseau interne, les règles du groupe de sécurité ne doivent pas bloquer l'accès à aucun segment réseau VIP, afin de garantir la connectivité réseau.
Comment générer une URL accessible publiquement pour un fichier téléchargé via un endpoint interne ?
Un fichier stocké dans OSS peut être consulté via n'importe quel endpoint, qu'il ait été téléchargé via un endpoint interne ou un endpoint public. L'endpoint utilisé pour le téléchargement n'affecte pas la manière dont le fichier est consulté. Si vous avez téléchargé un fichier via un endpoint interne, il suffit de remplacer le nom de domaine par l'endpoint public de la région correspondante lors de la génération de l'URL d'accès.
Par exemple, si vous avez téléchargé le fichier example.jpg via l'endpoint interne oss-cn-hangzhou-internal.aliyuncs.com, l'URL d'accès interne est :
https://bucket.oss-cn-hangzhou-internal.aliyuncs.com/example.jpg
Pour générer une URL accessible publiquement, remplacez l'endpoint interne par l'endpoint public :
https://bucket.oss-cn-hangzhou.aliyuncs.com/example.jpg
Nom de domaine d'accélération de transfert
Il s'agit d'un nom de domaine dédié qui devient disponible après l'activation de la fonctionnalité d'accélération de transfert. Il optimise le chemin de transmission des données grâce à des nœuds d'accélération mondiaux et convient aux scénarios de téléchargement et d'upload haute vitesse inter-régions et transfrontaliers, améliorant considérablement la qualité du réseau pour les accès longue distance.
Nom de domaine CNAME
Il s'agit d'un nom de domaine de résolution dédié qu'OSS génère pour un bucket, utilisé dans les scénarios d'association de nom de domaine personnalisé. Lorsque vous devez accéder à OSS via un nom de domaine personnalisé, pointez l'enregistrement CNAME du nom de domaine personnalisé vers ce nom de domaine plutôt que vers l'endpoint public.
OSS attribue un nom de domaine CNAME au sein de la région pour chaque bucket, et différents buckets peuvent recevoir des noms de domaine distincts. Contrairement à tous les buckets partageant le même endpoint public, les noms de domaine CNAME répartissent les liens d'accès, offrant ainsi une disponibilité supérieure. Remarques d'utilisation :
Utilisé uniquement pour la résolution DNS : Le nom de domaine CNAME sert uniquement à la configuration de la résolution DNS d'un nom de domaine personnalisé et ne prend pas en charge l'accès direct.
Accès via un nom de domaine personnalisé : Après avoir terminé l'association du nom de domaine personnalisé et la configuration de la résolution CNAME, accédez aux ressources OSS via le nom de domaine personnalisé.
Nom de domaine double pile
Il s'agit d'un endpoint qui prend en charge l'accès double pile IPv4 et IPv6, permettant aux clients situés dans des environnements réseau IPv6 de se connecter directement aux ressources OSS. Lors de l'utilisation d'un nom de domaine double pile, aucune configuration spéciale n'est requise côté client ; dans un environnement réseau purement IPv6 ou double pile, le DNS résout automatiquement et utilise de préférence les adresses IPv6 pour établir les connexions. Pour obtenir les informations sur les noms de domaine double pile de chaque région, consultez Régions et endpoints.
Exemples d'utilisation
Navigateur
Lorsque vous accédez à des fichiers tels que HTML et images via les noms de domaine d'accès fournis par OSS, le navigateur force le téléchargement au lieu d'un aperçu en ligne. Pour activer l'aperçu des fichiers, accédez à OSS via un nom de domaine personnalisé.
L'exemple suivant montre comment obtenir l'URL signée d'un fichier dans un bucket privé via la console. Pour découvrir d'autres méthodes d'obtention des URL signées, consultez Utiliser des URL présignées pour télécharger ou prévisualiser des fichiers.
Accédez à la liste des buckets et cliquez sur le bucket cible.
Cliquez sur le nom du fichier cible ou sur View Details dans la colonne Actions, définissez Domain Name sur Public Endpoint, puis cliquez sur Copy Object URL.
Accédez à l'URL dans un navigateur.
ossutil
L'exemple suivant montre comment utiliser l'outil en ligne de commande ossutil pour télécharger un fichier. ossutil utilise l'endpoint public par défaut, mais vous pouvez spécifier d'autres types d'endpoints via le paramètre -e :
ossutil cp oss://<bucket-name>/<object-name> <local-path> -e <endpoint>
Configurations des paramètres pour les différents types de noms de domaine :
|
Type de domaine |
Configuration des paramètres |
|
Endpoint public (par défaut) |
Omettez le paramètre |
|
Endpoint interne |
|
|
Nom de domaine d'accélération de transfert |
|
|
Nom de domaine personnalisé |
|
SDK
Voici des exemples d'initialisation des SDK V2 pour les langages courants. Les SDK utilisent l'endpoint public par défaut ; il suffit de spécifier la région pour terminer la configuration.
Java
OSSClient client = OSSClient.newBuilder()
.credentialsProvider(provider)
.region("<region-id>")
.build();
Pour le code d'initialisation complet, consultez OSS Java SDK V2.
Python
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
cfg.region = '<region-id>'
client = oss.Client(cfg)
Pour le code d'initialisation complet, consultez OSS Python SDK V2.
Go
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion("<region-id>")
client := oss.NewClient(cfg)
Pour le code d'initialisation complet, consultez OSS Go SDK V2.
PHP
$cfg = Configuration::loadDefault();
$cfg->setCredentialsProvider($provider);
$cfg->setRegion('<region-id>');
$client = new Oss\Client($cfg);
Pour le code d'initialisation complet, consultez OSS PHP SDK V2.
C#
var cfg = OSS.Configuration.LoadDefault();
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
cfg.Region = "<region-id>";
using var client = new OSS.Client(cfg);
Pour le code d'initialisation complet, consultez OSS C# SDK V2.
Node.js
const client = new OSS({
region: 'oss-<region-id>',
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
});
Pour le code d'initialisation complet, consultez OSS Node.js SDK.
Changer le type de domaine
Les SDK V2 permettent de changer rapidement le type de domaine via des options de configuration, sans avoir à concaténer manuellement la chaîne de l'endpoint :
|
Langage |
Endpoint public |
Endpoint interne |
Nom de domaine d'accélération de transfert |
Nom de domaine double pile |
|
Java |
Définissez uniquement |
|
|
|
|
Python |
Définissez uniquement |
|
|
|
|
Go |
Définissez uniquement |
|
|
|
|
PHP |
Définissez uniquement |
|
|
|
|
C# |
Définissez uniquement |
|
|
|
Le SDK Node.js ne prend pas en charge les options de configuration précédentes. Spécifiez directement la chaîne de l'endpoint cible via le paramètre
endpoint.Dans tous les SDK, vous pouvez spécifier directement n'importe quelle chaîne d'endpoint via le paramètre
endpoint, avec le même effet.Pour utiliser un SDK V1, consultez la documentation V1 correspondant au langage : OSS Java SDK V1 | OSS Python SDK V1 | OSS Go SDK V1 | OSS PHP SDK V1 | OSS SDK for C#.
Pour des exemples d'intégration de SDK dans d'autres langages, consultez Référence SDKRéférence SDK.
Protocoles et ports
Les endpoints et les noms de domaine de bucket de toutes les régions prennent en charge l'accès via les protocoles HTTP et HTTPS. Pour garantir la sécurité des transmissions de données, nous vous recommandons vivement d'utiliser le protocole HTTPS dans les environnements de production.
OSS prend en charge les ports suivants :
|
Port |
Protocole |
Description |
|
80 |
HTTP |
Port par défaut pour le protocole HTTP |
|
443 |
HTTPS |
Port par défaut pour le protocole HTTPS |
|
1935 |
RTMP |
Utilisé uniquement pour les scénarios de streaming RTMP |