{"id":24928,"date":"2021-05-28T14:45:00","date_gmt":"2021-05-28T11:45:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24928"},"modified":"2021-10-17T20:36:59","modified_gmt":"2021-10-17T17:36:59","slug":"kuinka-ladata-tiedosto-s3-een-laravel-tiedostojarjestelman-avulla","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-tiedosto-s3-een-laravel-tiedostojarjestelman-avulla\/","title":{"rendered":"Kuinka ladata tiedosto S3: een Laravel-tiedostoj\u00e4rjestelm\u00e4n avulla"},"content":{"rendered":"<p>\u00c4skett\u00e4in olen julkaissut artikkelin <a href=\"https:\/\/themewp.inform.click\/fi\/lataa-tiedostot-amazon-s3-een-aws-php-sdk-n-avulla\/\" title=\"Tiedostojen lataaminen Amazon S3: een AWS PHP SDK: n avulla\" >Tiedostojen lataaminen Amazon S3: een AWS PHP SDK: n avulla<\/a>. Yksi lukijoistamme kysyi, miten AWS S3 -lataustiedostotoimet suoritetaan Laravelin kanssa. Mit\u00e4 tulee Laraveliin, meid\u00e4n on noudatettava eri raitaa kuin PHP. T\u00e4ss\u00e4 artikkelissa tutkitaan, miten tiedosto ladataan S3: een Laravel-tiedostoj\u00e4rjestelm\u00e4n avulla.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/master\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Filesystem<\/a> tarjoaa erilaisia \u200b\u200bohjaimia toimimaan paikallisen tiedostoj\u00e4rjestelm\u00e4n, Amazon S3: n, Rackspacen jne. Kanssa. N\u00e4m\u00e4 ohjaimet tarjoavat k\u00e4tev\u00e4n ja helpon tavan ladata tiedostoja paikallisesti tai pilvipalveluun.<\/p>\n<p>Amazon S3 on suosittu palvelu kuvien, tiedostojen ja asiakirjojen tallentamiseen. Toiseksi tiedostojen pit\u00e4minen pilvess\u00e4 s\u00e4\u00e4st\u00e4\u00e4 paljon kaistanleveytt\u00e4 verkkosivustollesi. Se s\u00e4\u00e4st\u00e4\u00e4 is\u00e4nn\u00f6intitilaa ja pilvipalvelun suorituskyky on skaalautuva.<\/p>\n<p>T\u00e4m\u00e4n j\u00e4lkeen katsotaanpa, kuinka tiedosto ladataan S3: een Laravel-tiedostoj\u00e4rjestelm\u00e4n avulla.<\/p>\n<h3>Hanki AWS-suojaustiedot<\/h3>\n<p>S3: n k\u00e4yt\u00f6n aloittamiseksi sinulla on oltava tili <a href=\"https:\/\/aws.amazon.com\/s3\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Amazon Web Services -palvelussa<\/a>. Kun sinulla on se, aktivoi S3-palvelu.<\/p>\n<p>Kun olet aktivoinut S3-palvelun, hanki suojaustiedot, joita tarvitsemme opetusohjelman my\u00f6hemm\u00e4ss\u00e4 osassa.<\/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=\"Kuinka ladata tiedosto S3: een Laravel-tiedostoj\u00e4rjestelm\u00e4n avulla\" ><\/a><\/p>\n<h3>S3-ohjaimen m\u00e4\u00e4ritykset Laravelissa<\/h3>\n<p>Kuten sanoin, aion k\u00e4ytt\u00e4\u00e4 Laravel-tiedostoj\u00e4rjestelm\u00e4\u00e4. Se vaatii S3-ohjaimen m\u00e4\u00e4ritt\u00e4misen. Siirry editoriisi ja avaa tiedosto <code>config\/filesystems.php<\/code>. T\u00e4ss\u00e4 tiedostossa n\u00e4et S3: lle m\u00e4\u00e4ritetyn ohjaimen kohdassa &#8217;levyt&#8217;.<\/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>Yll\u00e4 olevassa koodissa Laravel k\u00e4ytt\u00e4\u00e4 arvoja asettamalla env() -menetelm\u00e4n. T\u00e4m\u00e4 tarkoittaa, ett\u00e4 sinun on m\u00e4\u00e4ritelt\u00e4v\u00e4 n\u00e4m\u00e4 vakiot <code>.env<\/code>tiedostossasi. Sinun ei tarvitse m\u00e4\u00e4ritt\u00e4\u00e4 AWS_URL- ja AWS_ENDPOINT-vakioita, koska sit\u00e4 ei vaadita tiedostojen lataamiseen S3-\u00e4mp\u00e4riin.<\/p>\n<pre><code>AWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\nAWS_DEFAULT_REGION=\nAWS_BUCKET=<\/code><\/pre>\n<p>Lis\u00e4\u00e4 arvo kuhunkin yll\u00e4 olevaan vakioon. Avaa seuraavaksi p\u00e4\u00e4te projektin juurihakemistossa ja suorita komento:<\/p>\n<pre><code>composer require league\/flysystem-aws-s3-v3 ~1.0<\/code><\/pre>\n<p>T\u00e4m\u00e4 komento asentaa vaaditun kirjaston, joka kutsuu AWS-sovellusliittym\u00e4n ja suorittaa pilvioperaatiot.<\/p>\n<h3>Lataa tiedosto S3: een Laravelissa<\/h3>\n<p>Me kaikki asetimme perusm\u00e4\u00e4rityksill\u00e4. Nyt voimme siirty\u00e4 tiedostojen lataamisen todelliseen osaan. Luodaan yksinkertainen lomake, jossa on tiedoston sy\u00f6tt\u00f6- ja l\u00e4hetyspainike.<\/p>\n<p>Lis\u00e4\u00e4 alla oleva koodi korttitiedostoon.<\/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>Korvaa paikkamerkki ROUTE_URL todellisella reitill\u00e4si.<\/p>\n<p>Laravel antaa <code>Storage<\/code>julkisivun, jota k\u00e4ytet\u00e4\u00e4n vuorovaikutuksessa m\u00e4\u00e4ritettyjen levyjen kanssa. Meid\u00e4n tapauksessamme levy on S3. Lis\u00e4\u00e4 <code>Storage<\/code>julkisivu ohjaimeen seuraavasti:<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesStorage;\n...\n...<\/code><\/pre>\n<p>Kun olet sis\u00e4llytt\u00e4nyt julkisivun, voit ladata tiedostoja S3: een. Kirjoita alla oleva menetelm\u00e4 menetelm\u00e4\u00e4n, joka l\u00e4hett\u00e4\u00e4 tiedoston S3: een.<\/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>Yll\u00e4 olevassa koodissa luon tiedostolle yksil\u00f6llisen nimen ja l\u00e4het\u00e4n sen sitten S3: een. K\u00e4ytt\u00e4j\u00e4n tulee tallentaa tiedostonimi tietokantaan my\u00f6hemp\u00e4\u00e4 k\u00e4ytt\u00f6\u00e4 varten. Ladatessani tiedostoa S3: een l\u00e4p\u00e4isin kolmannen parametrin nimell\u00e4 &#8217;public&#8217;. Jos et halua asettaa tiedostoa julkiseksi, ohita t\u00e4m\u00e4 parametri.<\/p>\n<p>K\u00e4ytt\u00e4j\u00e4 voi saada ladatun tiedoston URL-osoitteen koodilla:<\/p>\n<pre><code>$url = Storage::disk('s3')-&gt;url('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>Jos haluat poistaa tiedoston S3-\u00e4mp\u00e4rist\u00e4, k\u00e4yt\u00e4 poistomenetelm\u00e4\u00e4 alla olevan kuvan mukaisesti.<\/p>\n<pre><code>Storage::disk('s3')-&gt;delete('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>Kyse on siit\u00e4, miten tiedosto ladataan S3: een Laravel-tiedostoj\u00e4rjestelm\u00e4n avulla. Toivon, ett\u00e4 sait tiet\u00e4\u00e4 j\u00e4rjestelm\u00e4st\u00e4, jonka Laravel tarjoaa vuorovaikutuksessa Amazon S3: n kanssa. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h3>Aiheeseen liittyv\u00e4t artikkelit<\/h3>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ladata-ja-pakata-kuvia-laravelissa\/\" title=\"Opas kuvien lataamiseen ja pakkaamiseen Laravelissa\">Opas kuvien lataamiseen ja pakkaamiseen Laravelissa<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-ottaa-laravel-sovelluksen-varmuuskopiointi\/\" title=\"Kuinka ottaa Laravel-sovelluksen varmuuskopiointi\">Kuinka ottaa Laravel-sovelluksen varmuuskopiointi<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/varmuuskopioi-laravel-sovellus-dropboxissa\/\" title=\"Varmuuskopioi Laravel-sovellus Dropboxissa\">Varmuuskopioi Laravel-sovellus Dropboxissa<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haluatko tiet\u00e4\u00e4 kuinka ladata tiedosto S3: een Laravelissa? T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4mme sinulle askel askeleelta -oppaan, joka selitt\u00e4\u00e4 tiedoston lataamisen Amazon S3: een<\/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":[499],"tags":[843],"class_list":["post-24928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=24928"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24928\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21654"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}