Introduction
Zencoder peut télécharger et télécharger des fichiers depuis votre compartiment Amazon S3. Pour que Zencoder puisse télécharger des fichiers, ils doivent être accessibles par tout le monde, ou une stratégie de compartiment doit être ajoutée à votre compartiment qui accordera l'accès à Zencoder, ou vous devez enregistrer les informations d'identification sur votre compte pour accéder au compartiment.
Utiliser les informations d'identification
Vous pouvez économiser identifiants sur votre compte, ce qui nous permettra d'utiliser votre compte pour télécharger des fichiers au lieu des nôtres. Cela signifie que votre compte est le propriétaire du fichier, avec tous les droits et privilèges sur celui-ci. Vous pouvez définir les informations d'identification comme valeur par défaut pour tous les téléchargements et téléchargements ou les référencer à chaque demande, mais gardez à l'esprit que si vous les définissez comme valeur par défaut pour S3, elles seront utilisées pour TOUS les téléchargements et téléchargements S3. En règle générale, ce n'est pas un problème, mais si vous souhaitez importer plus tard dans le bucket d'un tiers, cela peut entraîner des problèmes.
Utilisez une politique de compartiment
Une autre option consiste à utiliser une stratégie de compartiment, qui vous permet de définir des autorisations sur tous les fichiers de votre compartiment. Pour commencer, visitez Console AWS. Sélectionnez votre bucket sur le côté gauche de l'écran, puis cliquez sur "propriétés". Sur la dernière ligne, cliquez sur "Ajouter une politique de compartiment". Nous allons rassembler ci-dessous une politique de compartiment, que vous copierez dans la zone de texte Politique de compartiment.
Notre politique de compartiment recommandée :
{
"Version": "2012-10-17",
"Id": "ZencoderBucketPolicy",
"Statement": [
{
"Sid": "Stmt1295042087538",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::395540211253:root"
},
"Action": [
"s3:GetObjectAcl",
"s3:GetObject",
"s3:PutObjectAcl",
"s3:PutObject",
"s3:ListMultipartUploadParts"
],
"Resource": "arn:aws:s3:::MY-BUCKET/*"
},
{
"Sid": "Stmt1295042087538",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::395540211253:root"
},
"Action": [
"s3:ListBucketMultipartUploads",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::MY-BUCKET"
}
]
}
Il n'y a que un changement que vous devrez faire à cette politique de compartiment avant qu'il ne soit prêt.
- Remplacez MY-BUCKET par le nom de votre seau. Laissez le / * à la fin de la ligne, car cela appliquera la stratégie à chaque fichier dans le compartiment.
- Vous pouvez éventuellement remplacer le tableau Action par les actions que vous souhaitez autoriser. Les actions valides dont Zencoder peut avoir besoin sont les suivantes :
Autorisations d'objet : premier tableau d'actions de l'exemple ci-dessus
s3:PutObject
- permettre à Zencoder de charger des fichiers dans le compartiments3:GetObject
- permettre à Zencoder de télécharger des fichiers depuis le compartiments3:GetObjectAcl
- permettre à Zencoder d'obtenir des autorisations ACL pour les fichierss3:PutObjectAcl
- permettre à Zencoder de définir des autorisations ACL pour d'autres utilisateurs sur des fichierss3:ListMultipartUploadParts
- permettre à Zencoder de répertorier les parties d'un fichier partitions qui ont été téléchargées dans le compartiment
Autorisations de compartiment : deuxième tableau d'actions de l'exemple ci-dessus
s3:GetBucketLocation
- permettre à Zencoder d'obtenir l'emplacement du compartiment (États-Unis, UE, Asie, etc.)s3:ListBucketMultipartUploads
- permettre à Zencoder d'afficher tous les téléchargements partitionnés en cours sur le compartimentex:
Si vous souhaitez que Zencoder puisse télécharger et télécharger des fichiers, remplacez le premier tableau Action par :["s3:PutObject", "s3:GetObject"]
Notez qu'il y a deux déclarations dans la politique. La première instruction affecte les clés dans le compartiment, tandis que la deuxième partie affecte le compartiment lui-même.
Le reste de la politique peut être laissé seul et cela fonctionnera très bien. La documentation d'Amazon contient plus d'informations sur le éléments d'une politique de compartiment.
Zencoder peut également définir des autorisations ACL sur les vidéos et les miniatures que nous créons pour vous. Ceci est documenté dans notre Documentation sur l'API S3.
Remarque : Lorsque vous utilisez une stratégie de compartiment, vous devez toujours utiliser des URL au format s3 : //BUCKET/KEY afin que Zencoder soit sûr de les identifier en tant qu'URL S3 et de signer la demande de manière appropriée.
Si vous souhaitez créer votre propre politique de compartiment, vous pouvez utiliser Générateur de politiques d'Amazon. Utilisation arn: aws: iam :: 395540211253: racine en tant que principal AWS pour autoriser l'accès à Zencoder.
Fichiers spécifiques
Puis-je simplement accorder l'autorisation à des fichiers spécifiques ?
Vous pouvez certainement. Bien que l'approche de la politique de compartiment soit généralement plus simple et plus rapide, elle ne fonctionne pas bien pour tout le monde. Si c'est vous, vous pouvez accorder des autorisations à notre compte Amazon AWS, aws@zencoder.com
.
Si vous devez utiliser notre identifiant canonique à la place, vous pouvez utiliser 6c8583d84664a381db0c6af0e79b285ede571885fbe768e7ea50e5d3760597dd
.
Dépannage
J'ai toujours la permission refusée !
S3 répond par "Accès refusé" si l'accès est refusé ou si le fichier n'est pas trouvé. Si vous pensez avoir correctement configuré vos informations d'identification S3 ou votre stratégie de compartiment, mais que vous recevez toujours des erreurs "Accès refusé", vérifiez l'URL que vous soumettez. Si l'entrée ressemble "s3://my-bucket/this+file+is+great.mp4"
, il y a de fortes chances que ce que vous voulez réellement soit "s3://my-bucket/this file is great.mp4"
Je reçois une erreur lors de l'utilisation de la région de Francfort de l'UE !
Pour utiliser la région UE de Francfort avec Zencoder, vous devez générer des URL S3 contenant le nom de la région. Pour ce faire, créez simplement des URL comme celle-ci "s3+eu-central-1://my-bucket/file.mp4"
.