Recherche…


Remarques

Résumé de la documentation

De http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html

Amazon Simple Storage Service est un stockage pour Internet. Il est conçu pour faciliter l’informatique à l’échelle Web pour les développeurs.

Amazon S3 dispose d'une interface de services Web simple que vous pouvez utiliser pour stocker et récupérer n'importe quelle quantité de données, à tout moment, depuis n'importe où sur le Web. Il permet à tout développeur d'accéder à la même infrastructure de stockage de données hautement évolutive, fiable, rapide et peu coûteuse qu'Amazon utilise pour gérer son propre réseau mondial de sites Web. Le service vise à maximiser les avantages d'échelle et à transmettre ces avantages aux développeurs.

Prise en charge de la langue et des scripts

S3 n'est pas un langage de développement en tant que tel, mais une plate-forme cloud prenant en charge les demandes de services Web. Il existe un assortiment d' outils et de SDK publiés par Amazon. Le langage SDK fournir un accès transparent à S3 par la gestion des tâches telles que les demandes de services Web, l' authentification, la gestion de la session, le renouvellement jeton, etc. Il y a aussi la commande des interfaces de ligne pour bash / windows / ios et Powershell .

L'API S3

L'API des services Web S3 a été prise en charge par des fournisseurs concurrents . Cette rubrique ne couvre pas actuellement l'API directement. Par conséquent, les exemples présentés ici ne seraient pas utiles pour créer des applications qui se connectent à des systèmes concurrents exploitant l'API S3.

Des versions

Au 28 mars 2017, l'interface de ligne de commande AWS contenait 174 versions, qui sont clairement documentées dans les notes de version de la CLI . Amazon S3 dispose de 66 versions, dont certaines doivent annoncer l'ajout d'une nouvelle région et d'autres ajouter des fonctionnalités. Ceux-ci sont documentés dans les notes de publication S3 .

Les exemples

En ce qui concerne les exemples présentés dans cette section "Mise en route", Amazon S3 est utile aux développeurs pour les cas d'utilisation suivants:

  • Stockez ou sauvegardez des fichiers dans un système performant et durable, déchargeant ainsi cette tâche des architectures non cloud: les systèmes de fichiers linux et windows. Il est coûteux de recréer les niveaux de durabilité et de performance de S3 en utilisant des serveurs locaux ou des instances EC2.
  • Lorsque la bande passante réseau est un problème, par exemple, lorsque plusieurs utilisateurs simultanés doivent télécharger des fichiers volumineux, le transfert de données vers S3 peut être utilisé comme moyen d' atténuer les pénuries de bande passante vers un centre de données ou un serveur local . C'est un moyen de distribuer un référentiel de code volumineux, des images de machines virtuelles, des programmes d'installation vidéo ou logicielles. Les temps de téléchargement des utilisateurs et les temps de téléchargement des utilisateurs peuvent être améliorés. [Pour des performances supplémentaires dans des scénarios de base d'utilisateurs très volumineux, un système de diffusion de contenu tel que cloudfront peut être utilisé pour mettre les fichiers en cache plus près des utilisateurs.]
  • Votre application doit créer ou consommer un gros fichier et vous avez besoin d'un moyen permettant aux utilisateurs d'y accéder ou de le déposer.
  • Votre distribution d’applications est très importante et vous devez la partager avec les utilisateurs.
  • Vous créez un pipeline de distribution continue et, par exemple, hébergez des parties de votre site Web sur Amazon S3.

À ce stade, les exemples ne montrent pas comment effectuer les opérations suivantes:

  • Les exemples, bien que plus rapides et plus clairs que la saisie de l' aws s3 help, do not mention some of the commands covered in help, such as aws s3 website`.
  • Comment partager ou restreindre l'accès des utilisateurs. Sans restriction explicite, les exemples ne fonctionneraient que pour les utilisateurs partageant le même compte AWS.
  • Comment sécuriser les données via le cryptage. Notez qu'AWS positionne S3 comme ayant un niveau de sécurité supérieur à celui des données stockées dans EC2. Meilleures pratiques de sécurité AWS, août 2016, p. 27

Sécurité

AWS recommande d'afficher S3 comme plate-forme sécurisée:

Sauf si vous avez des exigences commerciales ou de conformité plus strictes, vous n'avez pas besoin d'introduire des couches de protection supplémentaires au-delà de celles fournies par l'infrastructure globale sécurisée AWS. ibid. p.2

Dans son guide de sécurité , AWS recommande d’utiliser l’authentification AWS pour S3. ibid. p. 27

En outre, S3 fournit un cryptage côté serveur ou un cryptage côté client. Le chiffrement côté client est fourni de manière transparente par AWS Java SDK; Les clés n'ont pas besoin d'être stockées sur AWS. ibid. p. 28

Versions

nom de la version la description Remarques date de sortie
Amazon S3 on 2016-12-13 Ajoute la région de Londres Remarques 2016-12-13

Installation d'AWS CLI pour accéder à S3

Installer aws cli dans l'instance Ubuntu / Debian

sudo apt-get install -y python-dev python-pip
sudo pip install awscli
aws --version
aws configure

Installer aws cli en utilisant python

En utilisant pip, vous pouvez installer aws cli dans Windows, OS X et Linux

sudo pip install awscli

Configuration de l'interface de ligne de commande AWS

Cette section explique comment configurer les paramètres utilisés par l'interface de ligne de commande AWS lors de l'interaction avec AWS, tels que vos informations d'identification de sécurité et la région par défaut.

$ aws configure
AWS Access Key ID [None]: <Your access key >
AWS Secret Access Key [None]: <Your secret key>
Default region name [None]: us-west-2
Default output format [None]: json

Obtenir la clé d'accès et la clé secrète à partir de la page du compte dans AWS

Créer des seaux

Utilisez la commande aws s3 mb pour créer un nouveau compartiment. Les noms de seau doivent être uniques et doivent être conformes au DNS. Les noms de seau peuvent contenir des lettres minuscules, des chiffres, des tirets et des points

aws s3 mb s3://bucket-name

Enlever les seaux

Pour supprimer un compartiment, utilisez la commande aws s3 rb. Par défaut, le compartiment doit être vide.

aws s3 rb s3://bucket-name

Pour supprimer un compartiment non vide, vous devez inclure l'option --force.

aws s3 rb s3://bucket-name --force

Liste des seaux

Pour répertorier tous les compartiments ou leur contenu, utilisez la commande aws s3 ls

aws s3 ls
aws s3 ls s3://bucket-name

La commande suivante répertorie les objets dans bucket-name / path

aws s3 ls s3://bucket-name/path

Synchroniser les fichiers entre le système de fichiers local et S3

aws s3 sync . s3://my-bucket/path 

Il téléchargera tous les fichiers du répertoire en cours vers S3. Pour télécharger les fichiers de S3 dans le répertoire en cours, exécutez

aws s3 sync s3://my-bucket/path .

Liste des commandes AWS CLI S3

Liste des commandes S3 AWS CLI couramment utilisées

Créer un seau

aws s3 mb s3://bucket-name

Retirer le seau

aws s3 rb s3://bucket-name

Liste des seaux

aws s3 ls

Listez le contenu dans le seau

aws s3 ls s3://bucket-name

Liste des seaux avec un chemin

aws s3 ls s3://bucket-name/path

Copier un fichier

aws s3 cp file.txt s3://my-bucket/ 

Synchroniser des fichiers

aws s3 sync . s3://my-bucket/path

Supprimer le fichier local

rm ./MyFile1.txt

Essayez de synchroniser sans l'option --delete - rien ne se passe

aws s3 sync . s3://my-bucket/path

Synchronisation avec suppression - l'objet est supprimé du compartiment

aws s3 sync . s3://my-bucket/path --delete

Supprimer un objet du compartiment

aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt

Synchronisation avec suppression - le fichier local est supprimé

aws s3 sync s3://my-bucket/path . --delete

Synchroniser avec la classe de stockage Accès peu fréquent

aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA

Copier MyFile.txt dans le répertoire courant vers s3: // my-bucket / path

aws s3 cp MyFile.txt s3://my-bucket/path/

Déplacez tous les fichiers .jpg dans s3: // my-bucket / path to ./MyDirectory

aws s3 mv s3://my-bucket/path ./MyDirectory --exclude '*' --include '*.jpg' --recursive

Lister le contenu de mon seau

aws s3 ls s3://my-bucket

Listez le contenu du chemin dans my-bucket

aws s3 ls s3://my-bucket/path

Supprimer s3: //my-bucket/path/MyFile.txt

aws s3 rm s3://my-bucket/path/MyFile.txt

Supprimer s3: // my-bucket / path et tout son contenu

aws s3 rm s3://my-bucket/path --recursive

Hello World Example utilisant Java

Cet exemple tente de créer un compartiment appelé «hello-world» et, comme le compartiment hello-world a déjà été créé par quelqu'un d'autre dans l'espace de noms global de S3, il génère l'exception suivante. Remplacez "hello-world" par quelque chose pour éviter l'exception en créant un compartiment nommé de manière unique. Le nouveau compartiment ainsi créé peut être supprimé à l'aide de la console AWS

Exception dans le thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: le nom du compartiment demandé n'est pas disponible. L'espace de noms du compartiment est partagé par tous les utilisateurs du système. Veuillez sélectionner un autre nom et réessayer. (Service: Amazon S3; code d'état: 409; code d'erreur: BucketAlreadyExists; ID de demande: ...

           import com.amazonaws.services.s3.AmazonS3;
           import com.amazonaws.services.s3.AmazonS3ClientBuilder;
           import com.amazonaws.services.s3.model.CreateBucketRequest;
           import com.amazonaws.services.s3.model.Bucket;

            /** S3 "hello world" example. */
            public class S3Hello {

                    /** Name of hello-world bucket -- must be globally unique.  The
                     *  bucket namespace is shared by all users of the system.
                     */
                    static final String BUCKET_NAME = "hello-world";

                    /** Creates bucket
                     *  @param args Command line arguments
                     */
                    public static void main(final String[] args) {

                            AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();

                            CreateBucketRequest request
                                 = new CreateBucketRequest(BUCKET_NAME);

                            Bucket bucket = s3.createBucket(request);
                            System.out.println("S3 Hello World completed.");
                    }
            }

Cet exemple nécessite les dépendances suivantes:

Bonjour tout le monde en utilisant PowerShell

Cet exemple attend une erreur, car le compartiment hello-world existe déjà et S3 utilise un espace de noms global.

    New-S3Bucket -BucketName "hello-world"

New-S3Bucket: Le nom du compartiment demandé n'est pas disponible. L'espace de noms du compartiment est partagé par tous les utilisateurs du système. Veuillez sélectionner un autre nom et réessayer.

Si vous remplacez hello-world par un autre élément unique, le compartiment sera créé sans erreur et vous obtiendrez le résultat suivant:

    CreationDate                                      BucketName
    ------------                                      ----------
    3/30/2017 11:43:03 PM                             hello-world-832jklsdJF

Cet exemple nécessite les dépendances suivantes:



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow