Comment faire pour télécharger un fichier à partir de s3 à l'aide d'url?
Dans mon application, je vais récupérer l'url du fichier s3 comme : https://s3.amazonaws.com/account-update/input.csv
- Je le télécharger et de les traiter ensuite.
Ce que j'ai déjà fait :
AmazonS3 s3 = new AmazonS3Client(credentials);
S3Object s3object = s3.getObject(new GetObjectRequest(
bucketName, key));
Je suis en mesure de télécharger le fichier en fournissant seau et la clé, mais comment puis-je télécharger le fichier à l'aide de l'url(https://s3.amazonaws.com/account-update/input.csv) seulement?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez télécharger le fichier via un standard curl/wget, est la même que pour télécharger un autre fichier de l'Internet.
La partie importante, cependant, est de permettre l'accès à l'objet de Amazon S3. Quelques options:
Vous pouvez envisager d'utiliser le SDK AWS classe AmazonS3URI comme indiqué ci-dessous:
À partir d'ici, vous devriez être en mesure d'utiliser l's3Object obtenu d'une manière similaire à la s3Object indiqué dans votre code.
Pour plus d'Java liées à AWS SDK exemples sur l'utilisation de cette classe de vérifier ici
Pour permettre l'accès par HTTP, vous devez définir le seau comme un Site Web Statique dans la S3 de la console. Attention, cela permettra d'exposer l'ensemble de vos données sur le web, sauf si vous définissez un bon S3 contrôles d'accès.
La méthode que vous y accédez par le SDK Java de ne pas utiliser ce type de connexion, si. Il se connecte via le S3 protocole. Vous devez inspecter votre Rôle IAM ou de la Politique pour s'assurer que vous avez les autorisations appropriées (
s3:GetObject
). Vous aurez également besoin d's3:ListBucket
de voir une erreur 404 si l'objet n'existe pas.Jean Rotenstein est correct, vous pouvez télécharger le fichier via l'URL en utilisant la norme curl/wget.
Si vous voulais le faire à l'aide de Java, quelque chose comme ce qui suit devrait faire l'affaire, faisant usage de la Apache HttpComponents paquet
Le meilleur moyen est d'utiliser le pré-signé S3 URL pour atteindre vos besoins.
Vous pouvez ajouter la date d'expiration à votre signée Url et après que l'URL n'est pas disponible.
Pour plus d'informations, consultez la page suivante:
https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html
Vous ne pouvez pas, mais vous pouvez rendre le fichier en pièce jointe à télécharger.
Pour exemplo:
J'espère que cela aide.
l'aide de la cli: aws s3 cp s3://seau/préfixe/clé targetlocalfolder