{"id":663,"date":"2025-06-11T12:19:31","date_gmt":"2025-06-11T04:19:31","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/xtywj\/663.html"},"modified":"2025-06-11T12:19:31","modified_gmt":"2025-06-11T04:19:31","slug":"%e5%a6%82%e4%bd%95%e5%b0%86%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e5%88%b0aws-s3","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/663.html","title":{"rendered":"\u5982\u4f55\u5c06\u6587\u4ef6\u4e0a\u4f20\u5230AWS S3"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;AWS S3&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#29616;&#65292;&#20197;&#19979;&#26159;&#20351;&#29992;Python&#21644;Boto3&#24211;&#30340;&#31034;&#20363;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#23433;&#35013;&#24517;&#35201;&#30340;&#24211;<\/strong>&#65306;\n&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013;<code>boto3<\/code>&#24211;&#65292;&#36825;&#26159;&#19968;&#20010;&#29992;&#20110;&#19982;AWS&#26381;&#21153;&#20132;&#20114;&#30340;Python SDK&#12290;&#20320;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#26469;&#23433;&#35013;&#23427;&#65306;<\/p>\n<pre><code class=\"language-bash\">pip install boto3<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#37197;&#32622;AWS&#23458;&#25143;&#31471;<\/strong>&#65306;\n&#22312;&#24320;&#22987;&#20043;&#21069;&#65292;&#20320;&#38656;&#35201;&#37197;&#32622;AWS&#23458;&#25143;&#31471;&#20197;&#36830;&#25509;&#21040;&#20320;&#30340;AWS&#36134;&#25143;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#20195;&#30721;&#36827;&#34892;&#37197;&#32622;&#65306;<\/p>\n<pre><code class=\"language-python\">import boto3\n\n# &#21021;&#22987;&#21270;S3&#23458;&#25143;&#31471;\ns3 = boto3.client('s3', aws_access_key_id='YOUR_ACCESS_KEY',\n                  aws_secret_access_key='YOUR_SECRET_KEY',\n                  region_name='YOUR_REGION')<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#19978;&#20256;&#25991;&#20214;<\/strong>&#65306;\n&#20351;&#29992;<code>s3.upload_file()<\/code>&#26041;&#27861;&#23558;&#26412;&#22320;&#25991;&#20214;&#19978;&#20256;&#21040;&#25351;&#23450;&#30340;S3&#26742;&#20013;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-python\">import boto3\n\n# &#21021;&#22987;&#21270;S3&#23458;&#25143;&#31471;\ns3 = boto3.client('s3', aws_access_key_id='YOUR_ACCESS_KEY',\n                  aws_secret_access_key='YOUR_SECRET_KEY',\n                  region_name='YOUR_REGION')\n\n# &#35201;&#19978;&#20256;&#30340;&#26412;&#22320;&#25991;&#20214;&#36335;&#24452;\nlocal_file_path = 'path\/to\/your\/local\/file.txt'\n\n# &#30446;&#26631;S3&#26742;&#21517;&#31216;\nbucket_name = 'your-s3-bucket-name'\n\n# &#30446;&#26631;S3&#25991;&#20214;&#38190;&#65288;&#21363;&#25991;&#20214;&#21517;&#65289;\nobject_key = 'your-object-key-in-s3.txt'\n\n# &#19978;&#20256;&#25991;&#20214;\ns3.upload_file(local_file_path, bucket_name, object_key)\n\nprint(f\"File {local_file_path} uploaded successfully to {bucket_name}\/{object_key}\")<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#39564;&#35777;&#19978;&#20256;<\/strong>&#65306;\n&#20320;&#21487;&#20197;&#36890;&#36807;&#35775;&#38382;S3&#25511;&#21046;&#21488;&#25110;&#20351;&#29992;AWS CLI&#26469;&#39564;&#35777;&#25991;&#20214;&#26159;&#21542;&#24050;&#25104;&#21151;&#19978;&#20256;&#12290;<\/p>\n<\/li>\n<\/ol>\n<h3>&#31034;&#20363;&#20195;&#30721;&#35828;&#26126;&#65306;<\/h3>\n<ul>\n<li><code>aws_access_key_id<\/code>&#21644;<code>aws_secret_access_key<\/code>&#26159;&#20320;&#22312;AWS&#31649;&#29702;&#25511;&#21046;&#21488;&#20013;&#21019;&#24314;&#30340;&#20973;&#35777;&#12290;<\/li>\n<li><code>region_name<\/code>&#26159;&#20320;&#35201;&#36830;&#25509;&#30340;AWS&#21306;&#22495;&#65292;&#20363;&#22914;<code>us-west-2<\/code>&#12290;<\/li>\n<li><code>local_file_path<\/code>&#26159;&#35201;&#19978;&#20256;&#30340;&#26412;&#22320;&#25991;&#20214;&#36335;&#24452;&#12290;<\/li>\n<li><code>bucket_name<\/code>&#26159;&#35201;&#19978;&#20256;&#25991;&#20214;&#30340;&#30446;&#26631;S3&#26742;&#21517;&#31216;&#12290;<\/li>\n<li><code>object_key<\/code>&#26159;&#30446;&#26631;S3&#25991;&#20214;&#38190;&#65292;&#21363;&#25991;&#20214;&#21517;&#12290;<\/li>\n<\/ul>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#23601;&#21487;&#20197;&#23558;&#25991;&#20214;&#25104;&#21151;&#19978;&#20256;&#21040;AWS S3&#20102;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#20122;&#39532;&#36874;&#32593;&#32476;&#26381;&#21153;&#65288;Amazon Web Services&#65292;&#31616;&#31216;AWS&#65289;&#30340;&#31616;&#21333;&#23384;&#20648;&#26381;&#21153;&#65288;Simple Storage Service&#65292;&#31616;&#20889;&#20026;S3&#65289;&#26159;&#19968;&#31181;&#21487;&#25193;&#23637;&#12289;&#39640;&#36895;&#19988;&#22522;&#20110;&#20113;&#30340;&#23384;&#20648;&#26381;&#21153;&#65292;&#19987;&#20026;&#22312;&#32447;&#22791;&#20221;&#21644;&#24402;&#26723;&#25968;&#25454;&#21450;&#24212;&#29992;&#31243;&#24207;&#32780;&#35774;&#35745;&#12290;&#23558;AWS S3&#19982;PHP&#24212;&#29992;&#31243;&#24207;&#38598;&#25104;&#21518;&#65292;&#21487;&#20197;&#29992;&#20110;&#23384;&#20648;&#29992;&#25143;&#29983;&#25104;&#30340;&#20869;&#23481;&#12289;&#22791;&#20221;&#20197;&#21450;&#38745;&#24577;&#36164;&#20135;&#65292;&#22914;&#22270;&#29255;&#21644;&#25991;&#26723;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#24744;&#23558;&#23398;&#20064;&#22914;&#20309;&#20351;&#29992;PHP&#19978;&#20256;&#25991;&#20214;&#21040;AWS S3&#12290;<\/p><p>&#20808;&#20915;&#26465;&#20214;<\/p><p>&#19968;&#20010;&#29992;&#20110;&#19978;&#20256;&#25991;&#20214;&#30340;S3&#26742;&#12290;<\/p><p>&#24744;&#30340;AWS&#36134;&#25143;&#30340;&#35775;&#38382;&#23494;&#38053;ID&#21644;&#31192;&#23494;&#35775;&#38382;&#23494;&#38053;&#12290;<\/p><p>&#19968;&#20010;&#37197;&#32622;&#20102;S3&#30340;AWS&#36134;&#25143;&#12290;<\/p><p>&#23433;&#35013;&#20102; Composer&#65292;&#29992;&#20110;&#20381;&#36182;&#31649;&#29702;&#12290;<\/p><p>&#20351;&#29992;&#33267;&#23569;&#25903;&#25345;PHP 5.3.3&#30340;&#29615;&#22659;&#35774;&#32622;&#12290;<\/p><h2>Steps<\/h2><h3>&#27493;&#39588; 1&#65306;&#23433;&#35013;&#29992;&#20110; PHP &#30340; AWS SDK<\/h3><p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#36890;&#36807; Composer &#23433;&#35013; AWS SDK for PHP&#12290;AWS SDK &#25552;&#20379;&#20102;&#19982; AWS &#26381;&#21153;&#65288;&#21253;&#25324; S3&#65289;&#20132;&#20114;&#30340;&#26041;&#20415;&#26041;&#27861;&#12290;<\/p><pre><code>composer require aws\/aws-sdk-php<\/code><\/pre><p>&#22312;&#23433;&#35013;&#20102;AWS SDK&#21518;&#65292;&#35831;&#21153;&#24517;&#22312;PHP&#33050;&#26412;&#20013;&#21253;&#21547;&#33258;&#21160;&#21152;&#36733;&#25991;&#20214;&#12290;<\/p><pre><code>require 'vendor\/autoload.php';\nuse AwsS3S3Client;\nuse AwsS3ExceptionS3Exception;<\/code><\/pre><h3>&#27493;&#39588; 2&#65306;&#37197;&#32622; AWS S3 &#23458;&#25143;&#31471;<\/h3><p>&#21019;&#24314;&#19968;&#20010;&#24102;&#26377;&#24744;&#20973;&#25454;&#30340;S3&#23458;&#25143;&#31471;&#23454;&#20363;&#12290;&#36825;&#21253;&#25324;&#24744;&#30340;Access Key ID&#12289;Secret Access Key&#20197;&#21450;&#24744;&#30340;S3&#26742;&#25152;&#25176;&#31649;&#30340;&#22320;&#21306;&#12290;<\/p><pre><code>$s3Client = new S3Client([\n    'version' =&gt; 'latest',\n    'region'  =&gt; 'your-region',\n    'credentials' =&gt; [\n        'key'    =&gt; 'your-access-key-id',\n        'secret' =&gt; 'your-secret-access-key',\n    ],\n]);<\/code><\/pre><h3>&#27493;&#39588; 3&#65306;&#19978;&#20256;&#25991;&#20214;&#21040; S3<\/h3><p>&#20551;&#35774;&#24744;&#26377;&#19968;&#20010;&#20801;&#35768;&#29992;&#25143;&#36873;&#25321;&#25991;&#20214;&#30340;&#34920;&#21333;&#65292;&#22312;&#25552;&#20132;&#21518;&#65292;&#35813;&#25991;&#20214;&#24517;&#39035;&#31227;&#21160;&#21040;&#26381;&#21153;&#22120;&#19978;&#30340;&#20020;&#26102;&#20301;&#32622;&#12290;&#20043;&#21518;&#65292;&#20351;&#29992;S3&#23458;&#25143;&#31471;&#23558;&#20854;&#19978;&#20256;&#21040;&#24744;&#30340;S3&#26742;&#12290;<\/p><pre><code>$bucketName = 'your-bucket-name';\n$keyName = basename($_FILES['userfile']['name']);\n$filePath = $_FILES['userfile']['tmp_name'];\n\ntry {\n    $result = $s3Client-&gt;putObject([\n        'Bucket' =&gt; $bucketName,\n        'Key'    =&gt; $keyName,\n        'SourceFile' =&gt; $filePath, \/\/ also 'Body' =&gt; fopen($filePath, 'rb') can be used\n        'ACL'    =&gt; 'public-read' \/\/ or 'private'\n    ]);\n    echo \"File uploaded successfully. File URL:\" . $result-&gt;get('ObjectURL');\n} catch (S3Exception $e) {\n    echo $e-&gt;getMessage();\n}<\/code><\/pre><p>&#23545;&#19981;&#36215;&#65292;&#25105;&#19981;&#22826;&#26126;&#30333;&#24744;&#30340;&#24847;&#24605;&#65292;&#35831;&#24744;&#37325;&#26032;&#25551;&#36848;&#19968;&#19979;&#12290;<code>putObject<\/code>&#35813;&#26041;&#27861;&#29992;&#20110;&#19978;&#20256;&#25991;&#20214;&#12290;&#20320;&#21487;&#20197;&#35774;&#32622;ACL&#65288;&#35775;&#38382;&#25511;&#21046;&#21015;&#34920;&#65289;&#20026;&#20844;&#24320;&#35835;&#21462;&#65292;&#20197;&#20415;&#25991;&#20214;&#21487;&#20197;&#34987;&#20844;&#20247;&#35775;&#38382;&#65292;&#25110;&#32773;&#20445;&#25345;&#31169;&#26377;&#12290;<\/p><h3>&#27493;&#39588; 4&#65306;&#22788;&#29702;&#19978;&#20256;&#38169;&#35823;<\/h3><p>&#38169;&#35823;&#21487;&#33021;&#20250;&#22312;&#19978;&#20256;&#36807;&#31243;&#20013;&#21457;&#29983;&#65292;&#22240;&#27492;&#38656;&#35201;&#20248;&#38597;&#22320;&#22788;&#29702;&#36825;&#20123;&#24773;&#20917;&#12290;<code>S3Exception<\/code>&#22914;&#26524;&#20986;&#29616;&#32593;&#32476;&#38169;&#35823;&#12289;&#26080;&#25928;&#30340;&#20973;&#35777;&#25110;&#32773;&#25991;&#20214;&#19981;&#21487;&#29992;&#65292;&#23558;&#20250;&#25243;&#20986;&#24322;&#24120;&#12290;<\/p><h3>&#27493;&#39588;5&#65306;&#37197;&#32622;&#38468;&#21152;&#35774;&#32622;<\/h3><p>&#38500;&#20102;&#22522;&#26412;&#30340;&#25991;&#20214;&#19978;&#20256;&#27969;&#31243;&#20043;&#22806;&#65292;AWS S3&#36824;&#25903;&#25345;&#20197;&#19979;&#21151;&#33021;&#65306;<code>putObject<\/code>&#35813;&#26041;&#27861;&#20801;&#35768;&#36827;&#34892;&#21508;&#31181;&#37197;&#32622;&#65292;&#22914;&#35774;&#32622;&#20803;&#25968;&#25454;&#12289;&#26631;&#31614;&#12289;&#26381;&#21153;&#22120;&#31471;&#21152;&#23494;&#31561;&#12290;<\/p><pre><code>$result = $s3Client-&gt;putObject([\n    \/\/ ... previous code ...\n    'Metadata' =&gt; [\n        'CustomKey' =&gt; 'CustomValue'\n    ],\n    'Tagging' =&gt; 'key1=value1&amp;key2=value2',\n    'ServerSideEncryption' =&gt; 'AES256',\n]);<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#22312;&#26412;&#25351;&#21335;&#20013;&#65292;&#25105;&#20204;&#20171;&#32461;&#20102;&#22914;&#20309;&#20351;&#29992;PHP&#19978;&#20256;&#31616;&#21333;&#30340;&#25991;&#20214;&#21040;AWS S3&#12290;&#36825;&#24212;&#35813;&#20026;&#24744;&#25552;&#20379;&#19968;&#20010;&#33391;&#22909;&#30340;&#22522;&#30784;&#65292;&#20197;&#20415;&#36827;&#19968;&#27493;&#25193;&#23637;&#20197;&#22788;&#29702;&#26356;&#22797;&#26434;&#30340;&#22330;&#26223;&#65292;&#20363;&#22914;&#22788;&#29702;&#36739;&#22823;&#25991;&#20214;&#12289;&#30452;&#25509;&#27983;&#35272;&#22120;&#19978;&#20256;&#20197;&#21450;&#31649;&#29702;S3&#19978;&#30340;&#25991;&#20214;&#29256;&#26412;&#12290;<\/p><p>&#39069;&#22806;&#30340;&#25552;&#31034;<\/p><p>&#35831;&#23450;&#26399;&#26356;&#26032;AWS SDK&#65292;&#20197;&#33719;&#21462;&#26368;&#26032;&#21151;&#33021;&#21644;&#20462;&#22797;&#34917;&#19969;&#12290;<\/p><p>&#35831;&#20351;&#29992;&#29615;&#22659;&#21464;&#37327;&#25110;&#20973;&#35777;&#25991;&#20214;&#26469;&#20445;&#25345;AWS&#20973;&#35777;&#30340;&#23433;&#20840;&#65292;&#20197;&#38450;&#27844;&#38706;&#12290;<\/p><p>&#35831;&#35760;&#20303;&#65292;S3&#26159;&#19968;&#31181;&#25353;&#20351;&#29992;&#37327;&#35745;&#36153;&#30340;&#26381;&#21153;&#12290;&#35831;&#36319;&#36394;&#24744;&#30340;&#20351;&#29992;&#24773;&#20917;&#20197;&#36991;&#20813;&#24847;&#22806;&#30340;&#36153;&#29992;&#12290;<\/p><p>&#22914;&#26524;&#22788;&#29702;&#22823;&#25991;&#20214;&#65292;&#32771;&#34385;&#20351;&#29992;AWS S3&#25552;&#20379;&#30340;&#22810;&#37096;&#20998;&#19978;&#20256;&#21151;&#33021;&#12290;<\/p><p>&#23545;&#20110;&#38544;&#31169;&#20445;&#25252;&#30340;&#24212;&#29992;&#65292;&#20351;&#29992;&#12290;<code>private<\/code>ACL&#35774;&#32622;&#12290;<\/p><p>&#26681;&#25454;&#26412;&#25945;&#31243;&#33719;&#24471;&#30340;&#30693;&#35782;&#65292;&#29616;&#22312;&#20320;&#21487;&#20197;&#36731;&#26494;&#22320;&#36890;&#36807;AWS S3&#30340;&#24378;&#22823;&#20113;&#23384;&#20648;&#33021;&#21147;&#26469;&#38598;&#25104;&#25991;&#20214;&#23384;&#20648;&#21040;PHP&#24212;&#29992;&#31243;&#24207;&#20013;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;AWS S3&#65292;&#20320;&#38656;&#35201;&#36981;&#24490;&#20197;&#19979;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>&#30331;&#24405;&#21040; AWS &#31649;&#29702;&#25511;&#21046;&#21488;&#12290;<\/li>\n<li>&#36873;&#25321; AWS S3 &#23384;&#20648;&#26742;&#12290;<\/li>\n<li>&#22312;&#24038;&#20391;&#33756;&#21333;&#26639;&#20013;&#25214;&#21040;&#24182;&#28857;&#20987;&ldquo;&#23545;&#35937;&rdquo;&#25353;&#38062;&#12290;<\/li>\n<li>&#22312;&#23545;&#35937;&#32534;&#36753;&#39029;&#38754;&#19978;&#65292;&#28857;&#20987;&ldquo;&#28155;&#21152;&rdquo;&#25353;&#38062;&#26469;&#19978;&#20256;&#25991;&#20214;&#12290;<\/li>\n<\/ol>\n<p>&#20197;&#19979;&#26159;&#19968;&#27573;&#20351;&#29992; Python &#32534;&#20889;&#30340;&#31034;&#20363;&#20195;&#30721;&#65292;&#29992;&#20110;&#20174;&#26412;&#22320;&#35745;&#31639;&#26426;&#19978;&#20256;&#25991;&#20214;&#21040; Amazon S3&#12290;<\/p>\n<pre><code class=\"language-python\">import boto3\n\n# &#21019;&#24314;&#19968;&#20010; S3 &#23458;&#25143;&#31471;&#23454;&#20363;\ns3 = boto3.client('s3')\n\n# &#35774;&#32622;&#23384;&#20648;&#26742;&#21517;&#21644;&#25991;&#20214;&#36335;&#24452;\nbucket_name = 'your-bucket-name'\nlocal_file_path = '\/path\/to\/your\/local\/file.txt'\n\n# &#20351;&#29992; s3.upload_file() &#26041;&#27861;&#19978;&#20256;&#25991;&#20214;\ntry:\n    s3.upload_file(local_file_path, bucket_name, 'file.txt')\nexcept Exception as e:\n    print(f\"Error: {e}\")<\/code><\/pre>\n<p>&#36825;&#27573;&#20195;&#30721;&#39318;&#20808;&#21019;&#24314;&#20102;&#19968;&#20010; <code>boto3<\/code> &#23458;&#25143;&#31471;&#23454;&#20363;&#65292;&#28982;&#21518;&#35774;&#32622;&#23384;&#20648;&#26742;&#21517;&#31216;&#65288;&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#26159; <code>'your-bucket-name'<\/code>) &#21644;&#26412;&#22320;&#25991;&#20214;&#36335;&#24452;&#65288;&#22312;&#36825;&#37324;&#26159; <code>\/path\/to\/your\/local\/file.txt<\/code>&#65289;&#12290;&#25509;&#19979;&#26469;&#65292;&#23427;&#35843;&#29992; <code>upload_file()<\/code> &#26041;&#27861;&#23558;&#25991;&#20214;&#19978;&#20256;&#21040;&#25351;&#23450;&#30340;&#23384;&#20648;&#26742;&#12290;<\/p>\n<p>&#27880;&#24847;&#65306;&#35831;&#30830;&#20445;&#26367;&#25442; <code>'your-bucket-name'<\/code> &#21644; <code>'\/path\/to\/your\/local\/file.txt'<\/code> &#20026;&#23454;&#38469;&#30340;&#23384;&#20648;&#26742;&#21517;&#31216;&#21644;&#26412;&#22320;&#25991;&#20214;&#36335;&#24452;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#23558;&#25991;&#20214;&#19978;&#20256;&#21040;AWS S3&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#038;#2961..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[42],"tuisongtax":[],"class_list":["post-663","my1js","type-my1js","status-publish","hentry","my1js2nav-xtywj"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=663"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=663"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=663"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}