Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Faire des demandes d'API
Outre l'utilisation de la console, vous pouvez utiliser l'AWS Transfer FamilyAPI pour configurer et gérer vos serveurs par programmation. Cette section décrit les opérations AWS Transfer Family, la signature des requêtes pour l'authentification et la gestion des erreurs. Pour plus d'informations sur les régions et les points de terminaison disponibles pour Transfer Family, consultez la section AWS Transfer FamilyPoints de terminaison et quotas dans le Références générales AWS
Note
Vous pouvez également utiliser les AWS SDK lorsque vous développez des applications avec Transfer Family ;. Les AWS SDK pour Java, .NET et PHP intègrent l'API Transfer Family sous-jacente, simplifiant ainsi vos tâches de programmation. Pour plus d'informations sur le téléchargement des bibliothèques du SDK, consultez la section Exemples de bibliothèques de code
Rubriques
Transfer Family a requis les en-têtes de demande
Cette section décrit les en-têtes obligatoires que vous devez envoyer avec chaque requête POST àAWS Transfer Family. Vous incluez les en-têtes HTTP pour identifier les informations clés relatives à la requête, y compris l'opération que vous souhaitez appeler, la date de la requête et les informations correspondant à votre autorisation en tant qu'expéditeur de la requête. Les en-têtes ne sont pas sensibles à la casse et leur ordre n'est pas important.
L'exemple suivant montre les en-têtes utilisés dans l'ListServersopération.
POST / HTTP/1.1 Host:
transfer.us-east-1.amazonaws.com
x-amz-target: TransferService.ListServers x-amz-date: 20220507T012034Z Authorization: AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20220507/us-east-1/transfer/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de Content-Type: application/x-amz-json-1.1 Content-Length: 17 {"MaxResults":10}
Les en-têtes suivants doivent être inclus dans vos requêtes POST adressées à Transfer Family. Les en-têtes ci-dessous qui commencent par « x-amz » sont spécifiques à. AWS Tous les autres en-têtes répertoriés sont des en-têtes courants utilisés dans les transactions HTTP.
En-tête | Description |
---|---|
Authorization
|
L'en-tête d'autorisation est obligatoire. Le format est la signature de demande Sigv4 standard, qui est documentée dans la section Signing AWS API requests. |
Content-Type |
|
Host |
Utilisez l'en-tête de l'hôte pour spécifier le point de terminaison Transfer Family auquel vous envoyez votre demande. Par exemple,
|
x-amz-date |
Vous devez fournir l'horodatage dans l'
|
x-amz-target |
Cet en-tête spécifie la version de l'API et l'opération que vous demandez. Les valeurs d'en-tête cibles sont formées en concaténant la version de l'API avec le nom de l'API et ont le format suivant.
La valeur OperationName ( |
x-amz-security-token |
Cet en-tête est obligatoire lorsque les informations d'identification utilisées pour signer la demande sont des informations d'identification temporaires ou des informations d'identification de session (pour plus de détails, voir Utilisation d'informations d'identification temporaires avec les AWS ressources dans le guide de l'utilisateur IAM). Voir Ajouter la signature à la requête HTTP dans le Référence générale d'Amazon Web Services pour plus d'informations. |
Transfer Family : saisie et signature des demandes
Toutes les entrées de demande doivent être envoyées dans le cadre de la charge utile JSON dans le corps de la demande. Pour les actions dans lesquelles tous les champs de requête sont facultatifs, par exempleListServers
, vous devez toujours fournir un objet JSON vide dans le corps de la demande, tel que{}
. La structure de la demande/réponse de charge utile de Transfer Family est documentée dans la référence d'API existante, par exemple. DescribeServer
Transfer Family prend en charge l'authentification à l'aide de AWS Signature Version 4. Pour plus de détails, consultez la section Signature des demandes d'AWSAPI.
Réponses d'erreur
Lorsqu'il y a une erreur, les informations de l'en-tête de réponse contiennent :
-
Type de contenu :
application/x-amz-json-1.1
-
Un code d'état HTTP approprié
4xx
ou5xx
Le corps d'une réponse d'erreur contient des informations sur l'erreur qui s'est produite. L'exemple de réponse d'erreur suivant illustre la syntaxe de sortie des éléments de réponse commune à toutes les réponses d'erreur.
{ "__type": "String", "Message": "String", <!-- Message is lowercase in some instances --> "Resource": String, "ResourceType": String "RetryAfterSeconds": String }
Le tableau suivant explique les champs de réponse d'erreur JSON affichés dans la syntaxe précédente.
- __type
-
L'une des exceptions à un appel d'API Transfer Family.
Type : chaîne
- Message ou message
-
Un des messages de code d'erreur d'opération .
Note
Certaines exceptions utilisent
message
, d'autres utilisentMessage
. Vous pouvez vérifier le code de votre interface afin de déterminer le cas approprié. Vous pouvez également tester chaque option pour voir laquelle fonctionne.Type : chaîne
- Ressource
-
La ressource pour laquelle l'erreur est invoquée. Par exemple, si vous essayez de créer un utilisateur qui existe déjà, il
Resource
s'agit du nom d'utilisateur de l'utilisateur existant.Type : chaîne
- ResourceType
-
Type de ressource pour lequel l'erreur est invoquée. Par exemple, si vous essayez de créer un utilisateur qui existe déjà,
ResourceType
c'est le casUser
.Type : chaîne
- RetryAfterSeconds
-
Le nombre de secondes à attendre avant de réessayer la commande.
Type : chaîne
Exemples de réponses aux erreurs
Le corps JSON suivant est renvoyé si vous appelez l'DescribeServer
API et spécifiez un serveur qui n'existe pas.
{ "__type": "ResourceNotFoundException", "Message": "Unknown server", "Resource": "s-11112222333344444", "ResourceType": "Server" }
Le corps JSON suivant est renvoyé si l'exécution d'une API entraîne un ralentissement.
{ "__type":"ThrottlingException", "RetryAfterSeconds":"1" }
Le corps JSON suivant est renvoyé si vous utilisez l'CreateServer
API et que vous ne disposez pas des autorisations suffisantes pour créer un serveur Transfer Family.
{ "__type": "AccessDeniedException", "Message": "You do not have sufficient access to perform this action." }
Le corps JSON suivant est renvoyé si vous utilisez l'CreateUser
API et spécifiez un utilisateur qui existe déjà.
{ "__type": "ResourceExistsException", "Message": "User already exists", "Resource": "Alejandro-Rosalez", "ResourceType": "User" }
Bibliothèques disponibles
AWSfournit des bibliothèques, des exemples de code, des didacticiels et d'autres ressources aux développeurs de logiciels qui préfèrent créer des applications à l'aide d'API spécifiques au langage plutôt que des outils de ligne de commande et de l'API de requête. Ces bibliothèques fournissent des fonctions de base (non incluses dans les API), telles que l'authentification des demandes, les nouvelles tentatives et la gestion des erreurs, afin de faciliter le démarrage. Voir Outils sur lesquels s'appuyer AWS
Pour les bibliothèques et les exemples de code dans toutes les langues, voir Exemples de code et bibliothèques