{"id":35025,"date":"2024-10-04T14:59:22","date_gmt":"2024-10-04T07:59:22","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/04\/use-the-aws-sdk-for-php-with-object-storage\/"},"modified":"2024-10-04T14:59:22","modified_gmt":"2024-10-04T07:59:22","slug":"use-the-aws-sdk-for-php-with-object-storage","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/04\/use-the-aws-sdk-for-php-with-object-storage\/","title":{"rendered":"S\u1eed d\u1ee5ng AWS SDK cho PHP v\u1edbi Object Storage"},"content":{"rendered":"<p>AWS SDK d\u00e0nh cho PHP (GitHub: aws\/aws-sdk-php\/) bao g\u1ed3m \u1ee9ng d\u1ee5ng kh\u00e1ch S3 cho ph\u00e9p truy c\u1eadp v\u00e0o B\u1ed9 l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng t\u01b0\u01a1ng th\u00edch v\u1edbi S3 c\u1ee7a Linode trong \u1ee9ng d\u1ee5ng ho\u1eb7c t\u1eadp l\u1ec7nh PHP.<\/p>\n<h2 id=\"h-tr\u01b0\u1edbc-khi-b\u1ea1n-b\u1eaft-d\u1ea7u\">Tr\u01b0\u1edbc khi b\u1ea1n b\u1eaft \u0111\u1ea7u<\/h2>\n<p>\u0110\u1ea3m b\u1ea3o PHP 5.5.0 tr\u1edf l\u00ean \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t tr\u00ean m\u00e1y b\u1ea1n \u0111\u1ecbnh s\u1eed d\u1ee5ng.<\/p>\n<p>\u0110\u1ea3m b\u1ea3o Composer \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t tr\u00ean to\u00e0n c\u1ea7u. Xem C\u00e0i \u0111\u1eb7t tr\u00ecnh so\u1ea1n th\u1ea3o &gt; To\u00e0n c\u1ea7u.<\/p>\n<p>H\u01b0\u1edbng d\u1eabn n\u00e0y gi\u1ea3 \u0111\u1ecbnh r\u1eb1ng b\u1ea1n c\u00f3 hi\u1ec3u bi\u1ebft c\u01a1 b\u1ea3n v\u1ec1 ph\u00e1t tri\u1ec3n PHP v\u00e0 c\u1ea3m th\u1ea5y tho\u1ea3i m\u00e1i khi t\u00edch h\u1ee3p c\u00e1c m\u1eabu m\u00e3 v\u00e0o \u1ee9ng d\u1ee5ng c\u1ee7a m\u00ecnh.<\/p>\n<p>Ng\u01b0\u1eddi ta c\u0169ng gi\u1ea3 \u0111\u1ecbnh r\u1eb1ng b\u1ea1n c\u00f3 hi\u1ec3u bi\u1ebft c\u01a1 b\u1ea3n v\u1ec1 c\u00e1c kh\u00e1i ni\u1ec7m L\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng, bao g\u1ed3m c\u1ea3 c\u00e1c t\u1ec7p \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong m\u1ed9t h\u1ec7 th\u1ed1ng ph\u1eb3ng (kh\u00f4ng ph\u00e2n c\u1ea5p) c\u00f9ng v\u1edbi si\u00eau d\u1eef li\u1ec7u phong ph\u00fa.<\/p>\n<p>C\u00e0i \u0111\u1eb7t AWS SDK cho PHP<\/p>\n<p>B\u01b0\u1edbc \u0111\u1ea7u ti\u00ean l\u00e0 c\u00e0i \u0111\u1eb7t AWS SDK cho PHP th\u00f4ng qua Composer, m\u1ed9t tr\u00ecnh qu\u1ea3n l\u00fd ph\u1ee5 thu\u1ed9c ph\u1ed5 bi\u1ebfn cho PHP. Ch\u1ea1y l\u1ec7nh sau trong th\u01b0 m\u1ee5c d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n<\/p>\n<pre class=\"wp-block-code\"><code>composer require aws\/aws-sdk-php<\/code><\/pre>\n<p>Xem AWS SDK d\u00e0nh cho T\u00e0i li\u1ec7u PHP &gt; C\u00e0i \u0111\u1eb7t SDK \u0111\u1ec3 bi\u1ebft th\u00eam h\u01b0\u1edbng d\u1eabn v\u00e0 ph\u01b0\u01a1ng ph\u00e1p thay th\u1ebf.<\/p>\n<h2>Kh\u1edfi t\u1ea1o \u1ee9ng d\u1ee5ng kh\u00e1ch<\/h2>\n<p>\u0110\u1ec3 truy c\u1eadp c\u00e1c b\u1ed9 ch\u1ee9a v\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng L\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng, tr\u01b0\u1edbc ti\u00ean b\u1ea1n c\u1ea7n \u0111\u1ecbnh c\u1ea5u h\u00ecnh th\u00f4ng tin x\u00e1c th\u1ef1c c\u1ee7a m\u00ecnh v\u00e0 kh\u1edfi t\u1ea1o phi\u00ean m\u00e1y kh\u00e1ch S3.<\/p>\n<ul>\n<li>T\u1ea1o kh\u00f3a truy c\u1eadp v\u00e0 kh\u00f3a b\u00ed m\u1eadt cho L\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng th\u00f4ng qua Tr\u00ecnh qu\u1ea3n l\u00fd \u0111\u00e1m m\u00e2y b\u1eb1ng c\u00e1ch l\u00e0m theo h\u01b0\u1edbng d\u1eabn Qu\u1ea3n l\u00fd kh\u00f3a truy c\u1eadp.<\/li>\n<\/ul>\n<ul>\n<li>Th\u00eam m\u00e3 sau v\u00e0o t\u1eadp l\u1ec7nh PHP c\u1ee7a b\u1ea1n, thay th\u1ebf [kh\u00f3a truy c\u1eadp] v\u00e0 [kh\u00f3a b\u00ed m\u1eadt] b\u1eb1ng c\u00e1c gi\u00e1 tr\u1ecb \u0111\u01b0\u1ee3c t\u1ea1o \u1edf b\u01b0\u1edbc tr\u01b0\u1edbc. \u0110\u1ed3ng th\u1eddi thay th\u1ebf [url c\u1ee5m] b\u1eb1ng URL c\u1ee5m t\u01b0\u01a1ng \u1ee9ng v\u1edbi trung t\u00e2m d\u1eef li\u1ec7u m\u00e0 nh\u00f3m c\u1ee7a b\u1ea1n n\u1eb1m trong \u0111\u00f3 (\u0111\u01b0\u1ee3c li\u1ec7t k\u00ea tr\u00ean trang Truy c\u1eadp nh\u00f3m v\u00e0 t\u1ec7p th\u00f4ng qua URL).<\/li>\n<\/ul>\n<div class=\"is-layout-constrained wp-block-group\">\n<div class=\"wp-block-group__inner-container\">\n<p>require &#8216;vendor\/autoload.php&#8217;;<br \/>use Aws\\S3\\S3Client;<br \/>use Aws\\Exception\\AwsException;<\/p>\n<p>$config =<br \/>[<br \/>&#8216;version&#8217; =&gt; &#8216;latest&#8217;,<br \/>&#8216;region&#8217; =&gt; &#8221;,<br \/>&#8216;endpoint&#8217; =&gt; &#8216;[cluster-url]&#8217;,<br \/>&#8216;credentials&#8217; =&gt;<br \/>[<br \/>&#8216;key&#8217; =&gt; &#8216;[access-key]&#8217;,<br \/>&#8216;secret&#8217; =&gt; &#8216;[secret-key]&#8217;,<br \/>],<br \/>];<\/p>\n<p>$client = new \\Aws\\S3\\S3Client($config);<\/p>\n<\/div>\n<\/div>\n<p>Xem AWS SDK d\u00e0nh cho T\u00e0i li\u1ec7u PHP &gt; T\u00f9y ch\u1ecdn c\u1ea5u h\u00ecnh \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft v\u1ec1 c\u00e1ch \u0111\u1ecbnh c\u1ea5u h\u00ecnh m\u00e1y kh\u00e1ch. N\u1ebfu b\u1ea1n c\u00f3 \u00fd \u0111\u1ecbnh chia s\u1ebb m\u00e3 n\u00e0y v\u1edbi ng\u01b0\u1eddi kh\u00e1c, b\u1ea1n n\u00ean t\u00f3m t\u1eaft c\u1ea3 kh\u00f3a truy c\u1eadp v\u00e0 kh\u00f3a b\u00ed m\u1eadt. C\u00f3 m\u1ed9t s\u1ed1 ph\u01b0\u01a1ng ph\u00e1p \u0111\u1ec3 th\u1ef1c hi\u1ec7n vi\u1ec7c n\u00e0y, bao g\u1ed3m s\u1eed d\u1ee5ng t\u1ec7p c\u1ea5u h\u00ecnh AWS, bi\u1ebfn m\u00f4i tr\u01b0\u1eddng th\u00f4ng qua shell ho\u1eb7c t\u1ec7p c\u1ea5u h\u00ecnh t\u00f9y ch\u1ec9nh d\u00e0nh ri\u00eang cho m\u00f4i tr\u01b0\u1eddng.<\/p>\n<h2>Li\u1ec7t k\u00ea c\u00e1c nh\u00f3m<\/h2>\n<p>Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c nh\u00f3m trong m\u1ed9t c\u1ee5m. Xem listBuckets() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<p><strong>C\u00fa ph\u00e1p<\/strong><\/p>\n<p>$client-&gt;listBuckets();<\/p>\n<p><strong>V\u00ed d\u1ee5<\/strong><\/p>\n<p>Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c nh\u00f3m tr\u00ean t\u00e0i kho\u1ea3n trong c\u1ee5m \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh tr\u01b0\u1edbc \u0111\u00f3:<\/p>\n<pre class=\"wp-block-code\"><code>$result = $client-&gt;listBuckets();<br>foreach ($result&#91;'Buckets'] as $bucket) {<br>echo $bucket&#91;'Name'] . \"\\n\";<br>}<\/code><\/pre>\n<h2>T\u1ea1o bucket<\/h2>\n<p>T\u1ea1o m\u1ed9t nh\u00f3m m\u1edbi \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 l\u01b0u tr\u1eef c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng trong \u0111\u00f3. \u0110\u1ec3 c\u00f3 nh\u00e3n v\u00f9ng l\u01b0u tr\u1eef \u0111\u01b0\u1ee3c ch\u1ea5p nh\u1eadn, h\u00e3y xem l\u1ea1i h\u01b0\u1edbng d\u1eabn T\u1ea1o v\u00e0 qu\u1ea3n l\u00fd v\u00f9ng l\u01b0u tr\u1eef. Xem createBucket() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<p>c\u00fa ph\u00e1p:<\/p>\n<p>$client-&gt;createBucket([<br \/>&#8216;Bucket&#8217; =&gt; &#8216;bucket-label&#8217;<br \/>]);<\/p>\n<p>bucket: Nh\u00e3n c\u1ee7a nh\u00f3m b\u1ea1n mu\u1ed1n t\u1ea1o.<\/p>\n<h2>V\u00ed d\u1ee5<\/h2>\n<p>X\u00f3a nh\u00f3m c\u00f3 nh\u00e3n &#8220;example-bucket&#8221;:<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;deleteBucket(&#91;'Bucket' =&gt; 'example-bucket']);<\/code><\/pre>\n<h2>Li\u1ec7t k\u00ea bucket<\/h2>\n<p>c\u00fa ph\u00e1p:<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;listObjects(&#91;<br>'Bucket' =&gt; 'bucket-label',<br>'Prefix' =&gt; 'object-prefix'<br>]);<\/code><\/pre>\n<p><strong>Nh\u00f3m <\/strong>[b\u1eaft bu\u1ed9c]: Nh\u00e3n c\u1ee7a nh\u00f3m b\u1ea1n mu\u1ed1n s\u1eed d\u1ee5ng.<\/p>\n<p><strong>Ti\u1ec1n t\u1ed1: <\/strong>Ti\u1ec1n t\u1ed1 t\u00f9y ch\u1ecdn (ho\u1eb7c \u0111\u01b0\u1eddng d\u1eabn gi\u1ea3) c\u1ee7a c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng b\u1ea1n li\u1ec7t k\u00ea \u0111\u1ec3 xem trong nh\u00f3m. \u0110\u1ec3 xem t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng, h\u00e3y b\u1ecf qua tham s\u1ed1 Ti\u1ec1n t\u1ed1.<\/p>\n<h2>V\u00ed d\u1ee5<\/h2>\n<p>Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng: Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng trong nh\u00f3m c\u00f3 t\u00ean l\u00e0 &#8220;example-bucket&#8221;:<\/p>\n<pre class=\"wp-block-code\"><code>$result = $client-&gt;listObjects(&#91;'Bucket' =&gt; 'example-bucket']);<br>foreach ($result&#91;'Contents'] as $object) {<br>echo $object&#91;'Key'] . \"\\n\";<br>}<\/code><\/pre>\n<h2>V\u00ed d\u1ee5<\/h2>\n<ul>\n<li>Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng: Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng trong nh\u00f3m c\u00f3 t\u00ean l\u00e0 &#8220;example-bucket&#8221;:<\/li>\n<\/ul>\n<pre class=\"wp-block-code\"><code>$result = $client-&gt;listObjects(&#91;'Bucket' =&gt; 'example-bucket']);<br>foreach ($result&#91;'Contents'] as $object) {<br>echo $object&#91;'Key'] . \"\\n\";<br>}<\/code><\/pre>\n<p>Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng trong m\u1ed9t &#8220;th\u01b0 m\u1ee5c&#8221; c\u1ee5 th\u1ec3: Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong th\u01b0 m\u1ee5c &#8220;assets\/&#8221; trong nh\u00f3m c\u00f3 t\u00ean l\u00e0 &#8220;example-bucket&#8221;. H\u00e3y nh\u1edb r\u1eb1ng c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng kh\u00f4ng th\u1ef1c s\u1ef1 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong c\u00e1c th\u01b0 m\u1ee5c nh\u01b0ng gi\u00e1 tr\u1ecb ti\u1ec1n t\u1ed1 cho ph\u00e9p ch\u00fang xu\u1ea5t hi\u1ec7n trong m\u1ed9t c\u1ea5u tr\u00fac.<\/p>\n<pre class=\"wp-block-code\"><code>$result = $client-&gt;listObjects(&#91;'Bucket' =&gt; 'example-bucket','Prefix' =&gt; 'assets\/']);<br>foreach ($result&#91;'Contents'] as $object) {<br>echo $object&#91;'Key'] . \"\\n\";<br>}<\/code><\/pre>\n<h2>T\u1ea3i t\u1ec7p l\u00ean l\u00e0m \u0111\u1ed1i t\u01b0\u1ee3ng<\/h2>\n<p>T\u1ea3i t\u1ec7p l\u00ean d\u01b0\u1edbi d\u1ea1ng \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong nh\u00f3m \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh. Xem putObject() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<p>C\u00fa ph\u00e1p:<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;putObject(&#91;<br>'Bucket' =&gt; 'bucket-label',<br>'Key' =&gt; 'object-name',<br>'SourceFile' =&gt; '\/path\/to\/file.ext'<br>]);<\/code><\/pre>\n<ul>\n<li>Nh\u00f3m [b\u1eaft bu\u1ed9c]: Nh\u00e3n c\u1ee7a nh\u00f3m b\u1ea1n mu\u1ed1n l\u01b0u tr\u1eef t\u1ec7p b\u00ean trong.<\/li>\n<\/ul>\n<ul>\n<li>Kh\u00f3a [b\u1eaft bu\u1ed9c]: T\u00ean c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng b\u1ea1n mu\u1ed1n t\u1ea1o, bao g\u1ed3m m\u1ecdi ti\u1ec1n t\u1ed1\/\u0111\u01b0\u1eddng d\u1eabn.<\/li>\n<\/ul>\n<ul>\n<li>SourceFile [b\u1eaft bu\u1ed9c]: T\u00ean t\u1ec7p v\u00e0 \u0111\u01b0\u1eddng d\u1eabn c\u1ee7a t\u1ec7p c\u1ea7n t\u1ea3i l\u00ean.<\/li>\n<\/ul>\n<p>T\u1ea3i t\u1ec7p &#8220;file.txt&#8221; n\u1eb1m trong c\u00f9ng th\u01b0 m\u1ee5c v\u1edbi t\u1eadp l\u1ec7nh PHP c\u1ee7a b\u1ea1n l\u00ean nh\u00f3m c\u00f3 t\u00ean l\u00e0 &#8220;example-bucket&#8221;. \u0110\u1eb7t t\u00ean \u0111\u1ed1i t\u01b0\u1ee3ng m\u1edbi n\u00e0y l\u00e0 &#8220;file.txt&#8221;, gi\u1ed1ng v\u1edbi t\u00ean t\u1ec7p.<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;putObject(&#91;'Bucket'=&gt;'example-bucket','Key'=&gt;'file.txt','SourceFile'=&gt;'file.txt']);<\/code><\/pre>\n<p>T\u1ea3i t\u1ec7p &#8220;logo.jpg&#8221;, n\u1eb1m trong th\u01b0 m\u1ee5c ch\u00ednh, l\u00ean nh\u00f3m c\u00f3 t\u00ean l\u00e0 &#8220;example-bucket&#8221;. \u0110\u1eb7t t\u00ean \u0111\u1ed1i t\u01b0\u1ee3ng m\u1edbi n\u00e0y l\u00e0 &#8220;images\/logo.jpg&#8221;, cho ph\u00e9p n\u00f3 \u0111\u01b0\u1ee3c c\u1ea5u tr\u00fac trong m\u1ed9t th\u01b0 m\u1ee5c gi\u1ea3.<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;putObject(&#91;'Bucket'=&gt;'example-bucket','Key'=&gt;'images\/logo.jpg','SourceFile'=&gt;'logo.jpg']);<\/code><\/pre>\n<h2>T\u1ea3i m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng xu\u1ed1ng m\u1ed9t t\u1eadp tin<\/h2>\n<p>T\u1ea3i \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh xu\u1ed1ng m\u1ed9t t\u1ec7p m\u1edbi tr\u00ean h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n. Xem getObject() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<p>c\u00fa ph\u00e1p:<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;getObject(&#91;<br>'Bucket' =&gt; 'bucket-label',<br>'Key' =&gt; 'object-name',<br>'SaveAs' =&gt; '\/path\/to\/new\/file.ext'<br>]);<\/code><\/pre>\n<ul>\n<li>Nh\u00f3m [b\u1eaft bu\u1ed9c]: Nh\u00e3n c\u1ee7a nh\u00f3m ch\u1ee9a \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef b\u00ean trong.<\/li>\n<\/ul>\n<ul>\n<li>Kh\u00f3a [b\u1eaft bu\u1ed9c]: T\u00ean c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng b\u1ea1n mu\u1ed1n t\u1ea3i xu\u1ed1ng, bao g\u1ed3m m\u1ecdi ti\u1ec1n t\u1ed1\/\u0111\u01b0\u1eddng d\u1eabn.<\/li>\n<\/ul>\n<ul>\n<li>SaveAs [b\u1eaft bu\u1ed9c]: T\u00ean file v\u00e0 \u0111\u01b0\u1eddng d\u1eabn file c\u1ea7n t\u1ea1o.<\/li>\n<\/ul>\n<h2>V\u00ed d\u1ee5<\/h2>\n<p>T\u1ea3i \u0111\u1ed1i t\u01b0\u1ee3ng &#8220;file.txt&#8221;, \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong nh\u00f3m c\u00f3 t\u00ean &#8220;example-bucket&#8221;, xu\u1ed1ng m\u1ed9t t\u1ec7p m\u1edbi c\u00f3 t\u00ean &#8220;file.txt&#8221; trong c\u00f9ng th\u01b0 m\u1ee5c v\u1edbi t\u1eadp l\u1ec7nh PHP c\u1ee7a b\u1ea1n.<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;getObject(&#91;'Bucket' =&gt; 'example-bucket','Key' =&gt; 'file.txt', 'SaveAs' =&gt; 'file.txt']);<\/code><\/pre>\n<h2>X\u00f3a m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng ho\u1eb7c th\u01b0 m\u1ee5c<\/h2>\n<p>X\u00f3a m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng kh\u1ecfi m\u1ed9t th\u00f9ng. Xem deleteObject() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<p>C\u00fa ph\u00e1p:<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;deleteObject(&#91; 'Bucket' =&gt; 'bucket-label', 'Key' =&gt; 'object-name' ]);<\/code><\/pre>\n<ul>\n<li>Nh\u00f3m [b\u1eaft bu\u1ed9c]: Nh\u00e3n c\u1ee7a nh\u00f3m ch\u1ee9a \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef b\u00ean trong.<\/li>\n<\/ul>\n<ul>\n<li>Kh\u00f3a [b\u1eaft bu\u1ed9c]: T\u00ean c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng b\u1ea1n mu\u1ed1n x\u00f3a, bao g\u1ed3m m\u1ecdi ti\u1ec1n t\u1ed1\/\u0111\u01b0\u1eddng d\u1eabn.<\/li>\n<\/ul>\n<h2>V\u00ed d\u1ee5<\/h2>\n<p>X\u00f3a \u0111\u1ed1i t\u01b0\u1ee3ng &#8220;file.txt&#8221;, \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef trong nh\u00f3m c\u00f3 t\u00ean l\u00e0 &#8220;example-bucket&#8221;:<\/p>\n<pre class=\"wp-block-code\"><code>$client-&gt;deleteObject(&#91;'Bucket' =&gt; 'example-bucket','Key' =&gt; 'file.txt']);<\/code><\/pre>\n<h2>\u0110\u1ecdc th\u00eam<\/h2>\n<p>B\u1ea1n c\u00f3 th\u1ec3 t\u00ecm th\u1ea5y t\u00e0i li\u1ec7u m\u1edf r\u1ed9ng v\u1ec1 M\u00e1y kh\u00e1ch S3 d\u00e0nh cho AWS SDK cho PHP (bao g\u1ed3m nhi\u1ec1u ph\u01b0\u01a1ng th\u1ee9c, tham s\u1ed1 v\u00e0 v\u00ed d\u1ee5 kh\u00e1c) trong AWS SDK cho PHP (API 3.x) &gt; M\u00e1y kh\u00e1ch S3.<\/p>\n<p>ngu\u1ed3n: https:\/\/techdocs.akamai.com\/cloud-computing\/docs\/using-the-aws-sdk-for-php-with-object-storage#example-3<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AWS SDK d\u00e0nh cho PHP (GitHub: aws\/aws-sdk-php\/) bao g\u1ed3m \u1ee9ng d\u1ee5ng kh\u00e1ch S3 cho ph\u00e9p truy c\u1eadp v\u00e0o B\u1ed9 l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng t\u01b0\u01a1ng th\u00edch v\u1edbi S3 c\u1ee7a Linode trong \u1ee9ng d\u1ee5ng ho\u1eb7c t\u1eadp l\u1ec7nh PHP. Tr\u01b0\u1edbc khi b\u1ea1n b\u1eaft \u0111\u1ea7u \u0110\u1ea3m b\u1ea3o PHP 5.5.0 tr\u1edf l\u00ean \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t tr\u00ean m\u00e1y b\u1ea1n \u0111\u1ecbnh s\u1eed<\/p>\n","protected":false},"author":1,"featured_media":36231,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[103],"tags":[],"class_list":["post-35025","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-clients-and-tooling"],"_links":{"self":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/35025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/comments?post=35025"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/35025\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/36231"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=35025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=35025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=35025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}