{"id":25360,"date":"2021-05-28T14:35:00","date_gmt":"2021-05-28T11:35:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25360"},"modified":"2021-10-17T18:43:04","modified_gmt":"2021-10-17T15:43:04","slug":"kuidas-faili-s3-ules-laadida-kasutades-laraveli-failisusteemi","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/kuidas-faili-s3-ules-laadida-kasutades-laraveli-failisusteemi\/","title":{"rendered":"Kuidas faili S3 \u00fcles laadida, kasutades Laraveli failis\u00fcsteemi"},"content":{"rendered":"<p>Hiljuti avaldasin artikli <a href=\"https:\/\/themewp.inform.click\/et\/laadige-failid-amazon-s3-sse-ules-kasutades-aws-php-sdk-d\/\" title=\"AWS PHP SDK abil failide \u00fcleslaadimine Amazon S3-sse\" >AWS PHP SDK abil failide \u00fcleslaadimine Amazon S3-sse<\/a>. \u00dcks meie lugejatest k\u00fcsis, kuidas AWS S3 failifailide \u00fcleslaadimist Laraveli abil teha. Mis puutub Laraveli, siis peame PHP-ga v\u00f5rreldes j\u00e4rgima teistsugust rada. Selles artiklis uurime, kuidas fail \u00fcles laadida S3-sse, kasutades Laraveli failis\u00fcsteemi.<\/p>\n<p><a href=\"https:\/\/laravel.com\/docs\/master\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laraveli failis\u00fcsteem<\/a> pakub erinevaid draivereid t\u00f6\u00f6tamiseks kohaliku failis\u00fcsteemi, Amazon S3, Rackspace&#8217;i jne abil. Need draiverid pakuvad mugavat ja lihtsat viisi failide \u00fcleslaadimiseks kohapeal v\u00f5i pilves.<\/p>\n<p>Amazon S3 on populaarne teenus piltide, failide ja dokumentide salvestamiseks. Teiseks aitab failide pilves hoidmine s\u00e4\u00e4sta teie veebisaidi jaoks palju ribalaiust. See s\u00e4\u00e4stab teie hostimisruumi, lisaks on pilve j\u00f5udlus skaleeritav.<\/p>\n<p>Seda \u00f6eldes vaatame, kuidas faili S3-sse Laraveli failis\u00fcsteemi abil \u00fcles laadida.<\/p>\n<h3>Hankige oma AWS-i turvamandaadid<\/h3>\n<p>S3-ga alustamiseks peaks teil olema konto <a href=\"https:\/\/aws.amazon.com\/s3\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Amazon Web Servicesis<\/a>. Kui see on olemas, aktiveerige kindlasti teenus S3.<\/p>\n<p>P\u00e4rast S3-teenuse aktiveerimist hankige oma turvakirjad, mida vajame juhendaja hilisemas osas.<\/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=\"Kuidas faili S3 \u00fcles laadida, kasutades Laraveli failis\u00fcsteemi\" ><\/a><\/p>\n<h3>S3 draiveri konfiguratsioon Laravelis<\/h3>\n<p>Nagu \u00f6eldud, hakkan kasutama Laraveli failis\u00fcsteemi. See n\u00f5uab S3 draiveri konfigureerimist. Minge oma toimetaja juurde ja avage fail <code>config\/filesystems.php<\/code>. Selles failis n\u00e4ete draiverit, mis on S3 jaoks m\u00e4\u00e4ratletud jaotises &#8216;kettad&#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>\u00dclaltoodud koodis kasutab Laravel v\u00e4\u00e4rtuste m\u00e4\u00e4ramiseks meetodit env(). See t\u00e4hendab, et peate need konstandid oma <code>.env<\/code>failis m\u00e4\u00e4ratlema. Te ei pea m\u00e4\u00e4ratlema konstante AWS_URL ja AWS_ENDPOINT, kuna see pole failide \u00fcleslaadimiseks S3 \u00e4mbrisse vajalik.<\/p>\n<pre><code>AWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\nAWS_DEFAULT_REGION=\nAWS_BUCKET=<\/code><\/pre>\n<p>Lisage v\u00e4\u00e4rtus igale \u00fclalolevale konstandile. Seej\u00e4rel avage terminal oma projekti juurkataloogis ja k\u00e4ivitage k\u00e4sk:<\/p>\n<pre><code>composer require league\/flysystem-aws-s3-v3 ~1.0<\/code><\/pre>\n<p>See k\u00e4sk installib vajaliku teegi, mis kutsub AWS-i API-d ja teeb pilvetoiminguid.<\/p>\n<h3>Laadige fail \u00fcles Laraveli S3-sse<\/h3>\n<p>Me k\u00f5ik seadistasime p\u00f5hikonfiguratsiooniga. N\u00fc\u00fcd saame tegeleda failide \u00fcleslaadimise tegeliku osaga. Loome lihtsa vormi koos faili sisestamise ja esitamise nupuga.<\/p>\n<p>Lisage allpool olev kood oma labafaili.<\/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>Asendage kohat\u00e4ide ROUTE_URL oma tegeliku marsruudiga.<\/p>\n<p>Laravel annab <code>Storage<\/code>fassaadi, mida kasutatakse konfigureeritud ketastega suhtlemiseks. Meie puhul on kettaks S3. Lisage <code>Storage<\/code>kontrolleris fassaad j\u00e4rgmiselt:<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse IlluminateSupportFacadesStorage;\n...\n...<\/code><\/pre>\n<p>P\u00e4rast fassaadi lisamist saate faile \u00fcles laadida S3-le. Kirjutage allpool olev kood oma meetodisse, mis saadab faili S3-le.<\/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>\u00dclaltoodud koodis genereerin failile ainulaadse nime ja laadisin selle seej\u00e4rel S3-sse. Kasutaja peaks failinime hilisemaks kasutamiseks andmebaasi salvestama. Faili S3-sse \u00fcleslaadimise ajal andsin kolmanda parameetri \u201eavalikuks&quot;. Kui te ei soovi faili avalikuks m\u00e4\u00e4rata, j\u00e4tke see parameeter vahele.<\/p>\n<p>Kasutaja saab \u00fcleslaaditud faili URL-i saada koodi abil:<\/p>\n<pre><code>$url = Storage::disk('s3')-&gt;url('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>Faili kustutamiseks S3 \u00e4mbrist kasutage kustutamismeetodit, nagu allpool n\u00e4idatud.<\/p>\n<pre><code>Storage::disk('s3')-&gt;delete('YOUR_FILENAME_HERE');<\/code><\/pre>\n<p>See k\u00f5ik k\u00e4ib selle kohta, kuidas fail Laraveli failis\u00fcsteemi abil S3-sse \u00fcles laadida. Loodan, et saite teada Laraveli pakutavast s\u00fcsteemist Amazon S3-ga suhtlemiseks. Palun jagage oma m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h3>seotud artiklid<\/h3>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-pilte-laravelis-ules-laadida-ja-tihendada\/\" title=\"Juhend piltide \u00fcleslaadimiseks ja tihendamiseks Laravelis\">Juhend piltide \u00fcleslaadimiseks ja tihendamiseks Laravelis<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/laraveli-rakenduse-varundamine\/\" title=\"Laraveli rakenduse varundamine\">Laraveli rakenduse varundamine<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/laraveli-varundusrakendus-dropboxis\/\" title=\"Laraveli varundusrakendus Dropboxis\">Laraveli varundusrakendus Dropboxis<\/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>Kas soovite teada, kuidas fail Laraveli faili S3 \u00fcles laadida? Selles artiklis n\u00e4itame teile \u00fcksikasjalikku juhendit, mis selgitab faili \u00fcleslaadimist Amazon S3-sse<\/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":[498],"tags":[842],"class_list":["post-25360","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel2-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=25360"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25360\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21654"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}