{"id":28970,"date":"2021-06-01T12:08:00","date_gmt":"2021-06-01T09:08:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28970"},"modified":"2021-10-17T04:29:41","modified_gmt":"2021-10-17T01:29:41","slug":"ladda-upp-filer-till-amazon-s3-med-aws-php-sdk","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/sv\/ladda-upp-filer-till-amazon-s3-med-aws-php-sdk\/","title":{"rendered":"Ladda upp filer till Amazon S3 med AWS PHP SDK"},"content":{"rendered":"<p>Vill du ladda upp filer till Amazon S3 programmatiskt? Amazon S3 \u00e4r en molntj\u00e4nst d\u00e4r man kan lagra filer, bilder etc. Dessa dokument kan vara offentliga eller privata beroende p\u00e5 \u00e4garens val. I den h\u00e4r artikeln studerar vi hur man laddar upp filer till Amazon S3 med det officiella AWS PHP SDK-biblioteket.<\/p>\n<p>Amazon S3 tillhandah\u00e5ller h\u00f6g skalbar objektlagring. P\u00e5 grund av dess robusthet och prestanda \u00e4r det en popul\u00e4r molntj\u00e4nst bland anv\u00e4ndarna.<\/p>\n<h3>Varf\u00f6r beh\u00f6ver du ladda upp filer p\u00e5 Amazon S3?<\/h3>\n<p>Det finns flera sk\u00e4l att h\u00e5lla dina filer p\u00e5 Amazon S3. Eftersom det \u00e4r en molnbaserad tj\u00e4nst kan du komma \u00e5t dina filer var som helst. N\u00e4r de anv\u00e4nder den h\u00e4r tj\u00e4nsten kan anv\u00e4ndare h\u00e5lla sina dokument konfidentiella. AWS ger dig en funktion f\u00f6r att h\u00e5lla ditt dokument offentligt eller privat. F\u00f6r det andra sparar du mycket bandbredd om du k\u00f6r en webbplats s\u00e5 att du h\u00e5ller dina filer i molnet. Det sparar ditt v\u00e4rdutrymme och minskar belastningen p\u00e5 din server.<\/p>\n<p>Med det sagt, l\u00e5t oss ta en titt p\u00e5 hur man laddar upp filer p\u00e5 Amazon S3 med PHP.<\/p>\n<h3>F\u00e5 dina s\u00e4kerhetsuppgifter<\/h3>\n<p>F\u00f6r att komma ig\u00e5ng med S3 b\u00f6r du ha ett konto p\u00e5 <a href=\"https:\/\/aws.amazon.com\/s3\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS<\/a>. N\u00e4r du har skapat AWS-kontot, se till att aktivera tj\u00e4nsten S3 genom att f\u00f6lja deras verifieringsprocess.<\/p>\n<p>N\u00e4r du aktiverar S3-tj\u00e4nsten f\u00e5r du dina s\u00e4kerhetsuppgifter som vi beh\u00f6ver n\u00e4r du arbetar med API: erna.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20389-6081ea50ea555.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-20389-6081ea50ea555.png\" alt=\"Ladda upp filer till Amazon S3 med AWS PHP SDK\" ><\/a><\/p>\n<h3>Kod f\u00f6r uppladdning av filer till Amazon S3<\/h3>\n<p>Vi \u00e4r redo med AWS API-nycklar. Installera sedan ett officiellt <a href=\"https:\/\/github.com\/aws\/aws-sdk-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">AWS PHP SDK-<\/a> bibliotek i ditt projekt. Jag rekommenderar att du anv\u00e4nder <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer f\u00f6r<\/a> att installera detta bibliotek. \u00d6ppna terminalen i din projektkatalog och k\u00f6r kommandot nedan.<\/p>\n<pre><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>Detta kommando installerar biblioteket med deras beroenden i ditt projekt.<\/p>\n<h4>Skapa en hink p\u00e5 AWS<\/h4>\n<p>I AWS m\u00e5ste vi skapa en Bucket f\u00f6r att lagra v\u00e5ra filer. Skopan \u00e4r inget annat \u00e4n en logisk lagringsenhet i AWS. Alla dina filer kommer att lagras i hinken.<\/p>\n<p>Du kan skapa en hink direkt p\u00e5 S3-instrumentpanelen. Men om n\u00e5gon vill skapa det dynamiskt, se koden nedan.<\/p>\n<p><strong>create-bucket.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire 'vendor\/autoload.php';\nuse AwsS3S3Client;\n\u00a0\n$bucketName = 'YOUR_BUCKET_NAME';\n\u00a0\n$client = new S3Client([\n\u00a0\u00a0\u00a0\u00a0'version' =&gt; 'latest',\n\u00a0\u00a0\u00a0\u00a0'region' =&gt; 'YOUR_AWS_REGION',\n\u00a0\u00a0\u00a0\u00a0'credentials' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'key'\u00a0\u00a0\u00a0 =&gt; 'ACCESS_KEY_ID',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; 'SECRET_ACCESS_KEY'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$result = $client-&gt;createBucket([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Bucket' =&gt; $bucketName, \/\/ REQUIRED\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ACL'\u00a0\u00a0\u00a0 =&gt; 'public-read',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0echo \"Bucket created successfully.\";\n} catch (AwsS3ExceptionS3Exception $e) {\n\u00a0\u00a0\u00a0\u00a0\/\/ output error message if fails\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Se till att ers\u00e4tta platsh\u00e5llarna med de faktiska v\u00e4rdena. Den h\u00e4r koden skapar en hink p\u00e5 din S3-instrumentpanel. Vi laddar upp filerna under denna hink via API: t.<\/p>\n<p>I ovanst\u00e5ende kod skickade jag nyckeln =&gt; v\u00e4rdeparet som <code>'ACL' =&gt; 'public-read'<\/code>. Detta par anger din hink eller fil\u00e5tkomst till allm\u00e4nheten. Om du vill h\u00e5lla din lagring privat tar du bort den h\u00e4r raden fr\u00e5n koden.<\/p>\n<p>N\u00e4sta jobb \u00e4r att skriva kod f\u00f6r \u00f6verf\u00f6ring av filer p\u00e5 Amazon S3. F\u00f6r handledningens skull skapar jag olika PHP-filer och skriver kod i den. I ditt fall \u00e4r du v\u00e4lkommen att implementera logiken beroende p\u00e5 ditt projektfl\u00f6de.<\/p>\n<h4>Ladda upp fil till Amazon S3<\/h4>\n<p>Du \u00e4r redo med skopan f\u00f6r att lagra dina filer. Skapa en fil <code>upload-to-s3.php<\/code>och placera koden nedan i den h\u00e4r filen.<\/p>\n<p><strong>ladda upp-till-s3.php<\/strong><\/p>\n<pre><code>&lt;?php\nrequire 'vendor\/autoload.php';\n\u00a0\nuse AwsS3S3Client;\n\u00a0\n\/\/ Instantiate an Amazon S3 client.\n$s3 = new S3Client([\n\u00a0\u00a0\u00a0\u00a0'version' =&gt; 'latest',\n\u00a0\u00a0\u00a0\u00a0'region'\u00a0 =&gt; 'YOUR_AWS_REGION',\n\u00a0\u00a0\u00a0\u00a0'credentials' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'key'\u00a0\u00a0\u00a0 =&gt; 'ACCESS_KEY_ID',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'secret' =&gt; 'SECRET_ACCESS_KEY'\n\u00a0\u00a0\u00a0\u00a0]\n]);\n\u00a0\n\u00a0\n$bucketName = 'YOUR_BUCKET_NAME';\n$file_Path = __DIR__. '\/my-image.png';\n$key = basename($file_Path);\n\u00a0\n\/\/ Upload a publicly accessible file. The file size and type are determined by the SDK.\ntry {\n\u00a0\u00a0\u00a0\u00a0$result = $s3-&gt;putObject([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Bucket' =&gt; $bucketName,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Key'\u00a0\u00a0\u00a0 =&gt; $key,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'Body'\u00a0\u00a0 =&gt; fopen($file_Path, 'r'),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ACL'\u00a0\u00a0\u00a0 =&gt; 'public-read',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0echo \"Image uploaded successfully. Image path is: \". $result-&gt;get('ObjectURL');\n} catch (AwsS3ExceptionS3Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo \"There was an error uploading the file.n\";\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>H\u00e4r b\u00f6r du tilldela skopnamnet f\u00f6r <code>$bucketName<\/code>variabel. I mitt fall laddar jag upp en fil som s\u00e4ger &#8217;my-image.png&#8217; vilken s\u00f6kv\u00e4g jag anger i koden. F\u00f6ljaktligen b\u00f6r du justera s\u00f6kv\u00e4gen till dina filer. Slutligen skriver jag ut s\u00f6kv\u00e4gen f\u00f6r en uppladdad fil med hj\u00e4lp av <code>get()<\/code>metoden p\u00e5 det mottagna svaret.<\/p>\n<p>Klart! K\u00f6r nu <code>upload-to-s3.php<\/code>filen i webbl\u00e4saren och din fil ska laddas upp p\u00e5 Amazon S3-hink.<\/p>\n<p>Jag hoppas att du f\u00f6rst\u00e5r om att skapa en hink och ladda upp filer till Amazon S3. Du kanske ocks\u00e5 vill kontrollera <a href=\"https:\/\/github.com\/awsdocs\/aws-doc-sdk-examples\/tree\/master\/php\/example_code\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">exempelkoder som<\/a> tillhandah\u00e5lls av AWS p\u00e5 GitHub.<\/p>\n<h4>relaterade artiklar<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-laddar-jag-upp-filen-till-s3-med-laravel-filesystem\/\" title=\"Hur laddar jag upp filen till S3 med Laravel Filesystem\">Hur laddar jag upp filen till S3 med Laravel Filesystem<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-laddar-upp-bilder-till-en-annan-server-via-ftp-i-laravel\/\" title=\"Hur man laddar upp bilder till en annan server via FTP i Laravel\">Hur man laddar upp bilder till en annan server via FTP i Laravel<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/sv\/hur-man-integrerar-google-sheets-api-med-php\/\" title=\"Hur man integrerar Google Sheets API med PHP\">Hur man integrerar Google Sheets API med PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I den h\u00e4r handledningen visar vi dig att ladda upp filer till Amazon S3 med det officiella AWS PHK SDK-biblioteket. Om du lagrar filer i molnet sparar du en<\/p>\n","protected":false},"author":1,"featured_media":21664,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[279],"tags":[850],"class_list":["post-28970","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-10","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28970","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/comments?post=28970"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/posts\/28970\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media\/21664"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/media?parent=28970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/categories?post=28970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/sv\/wp-json\/wp\/v2\/tags?post=28970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}