J'ai un projet sur Github qui se construit après chaque commit sur Travis-CI . Après chaque construction réussie, Travis télécharge les artefacts dans un compartiment S3. Existe-t-il un moyen pour moi de permettre à quiconque d’accéder facilement aux fichiers du seau? Je sais que je pourrais générer une clé d'accès en lecture seule, mais il serait plus facile pour l'utilisateur d'accéder aux fichiers via son navigateur Web.
J'ai un hébergement de site Web activé avec le document racine de "." ensemble.
Cependant, je reçois toujours un message 403 Forbidden lorsque j'essaie d'accéder au point de terminaison du compartiment.
Comment permettre aux utilisateurs de parcourir et de télécharger facilement les artefacts stockés sur Amazon S3 à partir de leur navigateur Web? De préférence sans client tiers.
J'ai trouvé cette question connexe: Liste du répertoire dans S3 Static Website
En fin de compte, si vous activez la lecture publique pour tout le compartiment, S3 peut gérer des listes de répertoires. Le problème, c’est qu’ils sont en XML au lieu de HTML, ils ne sont donc pas très conviviaux.
Vous pouvez utiliser trois méthodes pour générer des listes:
Générez des fichiers index.html pour chaque répertoire sur votre propre ordinateur, téléchargez-les sur s3 et mettez-les à jour chaque fois que vous ajoutez de nouveaux fichiers à un répertoire. Très low-tech. Puisque vous dites que vous téléchargez des fichiers de construction directement à partir de Travis, cela n’est peut-être pas très pratique, car cela nécessiterait un travail supplémentaire.
Utilisez un outil de navigation S3 côté client.
Utilisez un outil de navigation côté serveur.
J'ai eu le même problème et je l'ai corrigé en utilisant le
Vous pouvez utiliser Navigateur Web S3
C'est un outil côté serveur, créé avec Laravel.
Vous pouvez utiliser une stratégie de compartiment pour donner aux utilisateurs anonymes un accès en lecture complet à vos objets. Selon que vous ayez besoin de LIST ou d’effectuer simplement une opération GET, vous voudrez peut-être modifier cela. (Par exemple, les autorisations permettant de répertorier le contenu d'un compartiment ont l'action définie sur "s3: ListBucket").
http://docs.aws.Amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html
Votre politique ressemblera à ce qui suit. Vous pouvez utiliser la console S3 à l’adresse http://aws.Amazon.com/console pour la télécharger.
{
"Version":"2008-10-17",
"Statement":[{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::bucket/*"
]
}
]
}
Si vous ouvrez véritablement vos objets au monde, envisagez de définir des règles CloudWatch pour votre facturation afin de pouvoir désactiver les autorisations d'accès à vos objets s'ils deviennent trop populaires.