{"id":24947,"date":"2021-05-28T14:07:00","date_gmt":"2021-05-28T11:07:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24947"},"modified":"2021-10-18T02:13:05","modified_gmt":"2021-10-17T23:13:05","slug":"comment-telecharger-un-fichier-sur-s3-a-l-aide-du-systeme-de-fichiers-laravel","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/comment-telecharger-un-fichier-sur-s3-a-l-aide-du-systeme-de-fichiers-laravel\/","title":{"rendered":"Comment t\u00e9l\u00e9charger un fichier sur S3 \u00e0 l&rsquo;aide du syst\u00e8me de fichiers Laravel"},"content":{"rendered":"<p>R\u00e9cemment, j&rsquo;ai publi\u00e9 un article <a href=\"https:\/\/themewp.inform.click\/fr\/charger-des-fichiers-sur-amazon-s3-a-l-aide-d-aws-php-sdk\/\" title=\"T\u00e9l\u00e9charger des fichiers sur Amazon S3 \u00e0 l'aide d'AWS PHP SDK\" >T\u00e9l\u00e9charger des fichiers sur Amazon S3 \u00e0 l&rsquo;aide d&rsquo;AWS PHP SDK<\/a>. L&rsquo;un de nos lecteurs a demand\u00e9 comment effectuer des op\u00e9rations de t\u00e9l\u00e9chargement de fichiers AWS S3 avec Laravel. En ce qui concerne Laravel, nous devons suivre une voie diff\u00e9rente par rapport \u00e0 PHP. Dans cet article, nous \u00e9tudions comment t\u00e9l\u00e9charger un fichier sur S3 \u00e0 l&rsquo;aide d&rsquo;un syst\u00e8me de fichiers Laravel.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/master\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Filesystem<\/a> fournit diff\u00e9rents pilotes pour fonctionner avec le syst\u00e8me de fichiers local, Amazon S3, Rackspace, etc. Ces pilotes offrent un moyen pratique et facile de t\u00e9l\u00e9charger des fichiers localement ou sur le cloud.<\/p>\n<p>Amazon S3 est un service populaire pour stocker des images, des fichiers et des documents. Deuxi\u00e8mement, conserver vos fichiers sur le cloud permettra d&rsquo;\u00e9conomiser beaucoup de bande passante pour votre site Web. Il \u00e9conomise votre espace d&rsquo;h\u00e9bergement et les performances du cloud sont \u00e9volutives.<\/p>\n<p>Cela dit, examinons comment t\u00e9l\u00e9charger un fichier sur S3 \u00e0 l&rsquo;aide du syst\u00e8me de fichiers Laravel.<\/p>\n<h3>Obtenez vos informations d&rsquo;identification de s\u00e9curit\u00e9 AWS<\/h3>\n<p>Pour commencer avec S3, vous devez avoir un compte sur <a href=\"https:\/\/aws.amazon.com\/s3\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Amazon Web Services<\/a>. Une fois que vous l&rsquo;avez, assurez-vous d&rsquo;activer le service S3.<\/p>\n<p>Apr\u00e8s avoir activ\u00e9 le service S3, obtenez vos informations d&rsquo;identification de s\u00e9curit\u00e9 dont nous aurons besoin dans la derni\u00e8re partie du didacticiel.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20443-6081f26f1f0bf.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20443-6081f26f1f0bf.png\" alt=\"Comment t\u00e9l\u00e9charger un fichier sur S3 \u00e0 l&#039;aide du syst\u00e8me de fichiers Laravel\" ><\/a><\/p>\n<h3>Configuration du pilote S3 dans Laravel<\/h3>\n<p>Comme dit, je vais utiliser le syst\u00e8me de fichiers Laravel. Cela n\u00e9cessite la configuration du pilote S3. Rendez-vous dans votre \u00e9diteur et ouvrez le fichier <code>config\/filesystems.php<\/code>. Dans ce fichier, vous pouvez voir le pilote d\u00e9fini pour S3 sous \u00ab\u00a0disques\u00a0\u00bb.<\/p>\n<p><strong>config\/filesystems.php<\/strong><\/p>\n<pre><code>&lt;?php\n\u00a0\nreturn [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0'disks' =&gt; [\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.....\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0's3' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'driver' =&gt; 's3',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'key' =&gt; env('AWS_ACCESS_KEY_ID'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; env('AWS_SECRET_ACCESS_KEY'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'region' =&gt; env('AWS_DEFAULT_REGION'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'bucket' =&gt; env('AWS_BUCKET'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'url' =&gt; env('AWS_URL'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'endpoint' =&gt; env('AWS_ENDPOINT'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\n\u00a0\u00a0\u00a0\u00a0],\n];<\/code><\/pre>\n<p>Dans le code ci-dessus, Laravel utilise la m\u00e9thode env() pour d\u00e9finir les valeurs. Cela signifie que vous devez d\u00e9finir ces constantes dans votre <code>.env<\/code>fichier. Vous n&rsquo;avez pas besoin de d\u00e9finir les constantes AWS_URL et AWS_ENDPOINT car cela n&rsquo;est pas n\u00e9cessaire pour t\u00e9l\u00e9charger des fichiers sur le compartiment S3.<\/p>\n<pre><code>AWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\nAWS_DEFAULT_REGION=\nAWS_BUCKET=<\/code><\/pre>\n<p>Ajoutez la valeur \u00e0 chaque constante ci-dessus. Ensuite, ouvrez le terminal dans le r\u00e9pertoire racine de votre projet et ex\u00e9cutez la commande\u00a0:<\/p>\n<pre><code>composer require league\/flysystem-aws-s3-v3 ~1.0<\/code><\/pre>\n<p>Cette commande installera la biblioth\u00e8que requise qui appelle l&rsquo;API AWS et effectue les op\u00e9rations cloud.<\/p>\n<h3>T\u00e9l\u00e9charger un fichier sur S3 dans Laravel<\/h3>\n<p>Nous avons tous r\u00e9gl\u00e9 avec la configuration de base. Nous pouvons maintenant passer \u00e0 la partie r\u00e9elle du t\u00e9l\u00e9chargement de fichiers. Cr\u00e9ons un formulaire simple avec une entr\u00e9e de fichier et un bouton d&rsquo;envoi.<\/p>\n<p>Ajoutez le code ci-dessous dans votre fichier blade.<\/p>\n<pre><code>&lt;form action=\"{{ url('ROUTE_URL') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputFile\"&gt;File input&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"profile_image\" id=\"exampleInputFile\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Remplacez l&rsquo;espace r\u00e9serv\u00e9 ROUTE_URL par votre itin\u00e9raire r\u00e9el.<\/p>\n<p>Laravel donne une <code>Storage<\/code>fa\u00e7ade qui permet d&rsquo;interagir avec les disques configur\u00e9s. Dans notre cas, le disque est S3. Ajoutez la <code>Storage<\/code>fa\u00e7ade dans le contr\u00f4leur comme suit\u00a0:<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesStorage;\n...\n...<\/code><\/pre>\n<p>Apr\u00e8s avoir inclus une fa\u00e7ade, vous pouvez t\u00e9l\u00e9charger des fichiers sur S3. \u00c9crivez le code ci-dessous dans votre m\u00e9thode qui envoie le fichier sur S3.<\/p>\n<pre><code>&lt;?php\n...\n...\npublic function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if($request-&gt;hasFile('profile_image')) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $request-&gt;file('profile_image')-&gt;getClientOriginalName();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $request-&gt;file('profile_image')-&gt;getClientOriginalExtension();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.time().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Upload File to s3\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Storage::disk('s3')-&gt;put($filenametostore, fopen($request-&gt;file('profile_image'), 'r+'), 'public');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Store $filenametostore in the database\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Dans le code ci-dessus, je g\u00e9n\u00e8re un nom unique pour le fichier, puis je le t\u00e9l\u00e9charge sur S3. Un utilisateur doit stocker le nom de fichier dans la base de donn\u00e9es pour une utilisation ult\u00e9rieure. Lors du t\u00e9l\u00e9chargement d&rsquo;un fichier sur S3, j&rsquo;ai pass\u00e9 le troisi\u00e8me param\u00e8tre en tant que \u00ab\u00a0public\u00a0\u00bb. Si vous ne souhaitez pas d\u00e9finir le fichier comme \u00ab\u00a0public\u00a0\u00bb, ignorez ce param\u00e8tre.<\/p>\n<p>L&rsquo;utilisateur peut obtenir l&rsquo;URL du fichier t\u00e9l\u00e9charg\u00e9 en utilisant le code\u00a0:<\/p>\n<pre><code>$url = Storage::disk('s3')-&gt;url('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>Pour supprimer un fichier du compartiment S3, utilisez la m\u00e9thode de suppression comme indiqu\u00e9 ci-dessous.<\/p>\n<pre><code>Storage::disk('s3')-&gt;delete('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>Il s&rsquo;agit de t\u00e9l\u00e9charger un fichier sur S3 \u00e0 l&rsquo;aide du syst\u00e8me de fichiers Laravel. J&rsquo;esp\u00e8re que vous avez pris connaissance du syst\u00e8me fourni par Laravel pour interagir avec Amazon S3. S&rsquo;il vous pla\u00eet partager vos pens\u00e9es et suggestions dans la section commentaires ci-dessous.<\/p>\n<h3>Articles Li\u00e9s<\/h3>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-telecharger-et-compresser-des-images-dans-laravel\/\" title=\"Un guide pour t\u00e9l\u00e9charger et compresser des images dans Laravel\">Un guide pour t\u00e9l\u00e9charger et compresser des images dans Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/comment-faire-une-sauvegarde-de-l-application-laravel\/\" title=\"Comment faire une sauvegarde de l&#039;application Laravel\">Comment faire une sauvegarde de l&rsquo;application Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/sauvegarder-l-application-laravel-sur-dropbox\/\" title=\"Sauvegarder l&#039;application Laravel sur Dropbox\">Sauvegarder l&rsquo;application Laravel sur Dropbox<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voulez-vous savoir comment t\u00e9l\u00e9charger un fichier sur S3 dans Laravel\u00a0? Dans cet article, nous vous montrons un guide \u00e9tape par \u00e9tape qui explique le t\u00e9l\u00e9chargement d&rsquo;un fichier sur Amazon S3<\/p>\n","protected":false},"author":1,"featured_media":21654,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[497],"tags":[844],"class_list":["post-24947","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24947","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24947"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24947\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21654"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}