{"id":35026,"date":"2024-10-07T09:31:18","date_gmt":"2024-10-07T02:31:18","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/07\/use-the-aws-sdk-for-python-boto3-with-object-storage\/"},"modified":"2024-10-07T09:31:18","modified_gmt":"2024-10-07T02:31:18","slug":"use-the-aws-sdk-for-python-boto3-with-object-storage","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/10\/07\/use-the-aws-sdk-for-python-boto3-with-object-storage\/","title":{"rendered":"S\u1eed d\u1ee5ng AWS SDK cho Python (boto3) v\u1edbi Object Storage"},"content":{"rendered":"<p>SDK Python AWS c\u1ee7a Amazon, \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 boto3, bao g\u1ed3m m\u00e1y 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 Python.<\/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 Python 3.6 tr\u1edf l\u00ean \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t tr\u00ean m\u00e1y b\u1ea1n \u0111\u1ecbnh s\u1eed d\u1ee5ng. \u0110\u1ed1i v\u1edbi c\u00e1c h\u1ec7 th\u1ed1ng d\u1ef1a tr\u00ean Linux, h\u00e3y xem h\u01b0\u1edbng d\u1eabn C\u00e1ch c\u00e0i \u0111\u1eb7t Python 3 \u0111\u1ec3 bi\u1ebft h\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t.<\/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 Python 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<h2>C\u00e0i \u0111\u1eb7t boto3<\/h2>\n<p>B\u01b0\u1edbc \u0111\u1ea7u ti\u00ean l\u00e0 c\u00e0i \u0111\u1eb7t AWS SDK cho Python (boto3) th\u00f4ng qua pip, tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i c\u1ee7a python \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t theo m\u1eb7c \u0111\u1ecbnh tr\u00ean c\u00e1c phi\u00ean b\u1ea3n Python g\u1ea7n \u0111\u00e2y.<\/p>\n<pre class=\"wp-block-code\"><code>pip3 install boto3<\/code><\/pre>\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 python 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<pre class=\"wp-block-code\"><code>import boto3<br>linode_obj_config = {<br>\"aws_access_key_id\": \"&#91;access-key]\",<br>\"aws_secret_access_key\": \"&#91;secret-key]\",<br>\"endpoint_url\": \"&#91;cluster-url]\",<br>}<br>client = boto3.client(\"s3\", **linode_obj_config)<\/code><\/pre>\n<p>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. Xem T\u00e0i li\u1ec7u Boto3 &gt; C\u1ea5u h\u00ecnh.<\/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 list_buckets() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<h2>c\u00fa ph\u00e1p<\/h2>\n<pre class=\"wp-block-code\"><code>client.list_buckets()<\/code><\/pre>\n<h2>V\u00ed d\u1ee5<\/h2>\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>client.create_bucket(Bucket='example-bucket')<\/code><\/pre>\n<h2>Li\u1ec7t k\u00ea c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng<\/h2>\n<p>Xu\u1ea5t ra t\u1ea5t c\u1ea3 c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng trong m\u1ed9t nh\u00f3m (v\u00e0 v\u1edbi m\u1ed9t ti\u1ec1n t\u1ed1 nh\u1ea5t \u0111\u1ecbnh, n\u1ebfu \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh). Xem list_objects() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<h2>C\u00fa ph\u00e1p<\/h2>\n<pre class=\"wp-block-code\"><code>client.list_objects(<br>Bucket='bucket-label',<br>Prefix='object-prefix')<\/code><\/pre>\n<ul>\n<li><strong>Bucket <\/strong>[b\u1eaft bu\u1ed9c]: Nh\u00e3n c\u1ee7a nh\u00f3m b\u1ea1n mu\u1ed1n s\u1eed d\u1ee5ng.<\/li>\n<\/ul>\n<ul>\n<li><strong>Prefix<\/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.<\/li>\n<\/ul>\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>response = client.list_objects(Bucket='example-bucket')<br>for object in response&#91;'Contents']:<br>print(object&#91;'Key'])<\/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>response = client.list_objects(Bucket='example-bucket', Prefix='assets\/')<br>for object in response&#91;'Contents']:<br>print(object&#91;'Key'])<\/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 upload_file() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<pre class=\"wp-block-code\"><code>client.upload_file(<br>Filename='\/path\/to\/file.ext',<br>Bucket='bucket-label',<br>Key='object-name')<\/code><\/pre>\n<ul>\n<li>Filename [b\u1eaft bu\u1ed9c]: T\u00ean file v\u00e0 \u0111\u01b0\u1eddng d\u1eabn file c\u1ea7n upload.<\/li>\n<\/ul>\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<h2>V\u00ed d\u1ee5<\/h2>\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 python 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.upload_file(Filename='file.txt', Bucket='example-bucket', Key='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.upload_file(Filename='\/Users\/user\/logo.jpg', Bucket='example-bucket', Key='images\/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 download_file() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<h2>C\u00fa ph\u00e1p<\/h2>\n<pre class=\"wp-block-code\"><code>client.download_file(<br>Bucket='bucket-label',<br>Key='object-name',<br>Filename='\/path\/to\/file.ext')<\/code><\/pre>\n<p>bucket[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.<\/p>\n<p>key[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.<\/p>\n<p>Filename [b\u1eaft bu\u1ed9c]: T\u00ean file v\u00e0 \u0111\u01b0\u1eddng d\u1eabn file c\u1ea7n t\u1ea1o.<\/p>\n<h2>V\u00ed d\u1ee5<\/h2>\n<p>T\u1ea3i xu\u1ed1ng \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;, xu\u1ed1ng m\u1ed9t t\u1ec7p m\u1edbi c\u00f3 t\u00ean l\u00e0 &#8220;file.txt&#8221; trong c\u00f9ng th\u01b0 m\u1ee5c v\u1edbi t\u1eadp l\u1ec7nh python c\u1ee7a b\u1ea1n.<\/p>\n<pre class=\"wp-block-code\"><code>client.download_file(Bucket='example-bucket', Key='file.txt', Filename='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 delete_object() \u0111\u1ec3 bi\u1ebft th\u00eam chi ti\u1ebft, c\u00fa ph\u00e1p v\u00e0 v\u00ed d\u1ee5.<\/p>\n<pre class=\"wp-block-code\"><code>client.delete_object(<br>Bucket='bucket-label',<br>Key='object-name')<\/code><\/pre>\n<ul>\n<li>Bucket [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>Key [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.delete_object(Bucket='example-bucket', Key='file.txt')<\/code><\/pre>\n<p>ngu\u1ed3n: https:\/\/techdocs.akamai.com\/cloud-computing\/docs\/using-the-aws-sdk-for-python-boto3-with-object-storage<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SDK Python AWS c\u1ee7a Amazon, \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 boto3, bao g\u1ed3m m\u00e1y 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 Python. Tr\u01b0\u1edbc khi b\u1ea1n b\u1eaft \u0111\u1ea7u \u0110\u1ea3m b\u1ea3o Python 3.6 tr\u1edf l\u00ean \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t tr\u00ean m\u00e1y b\u1ea1n \u0111\u1ecbnh<\/p>\n","protected":false},"author":1,"featured_media":36232,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[103],"tags":[],"class_list":["post-35026","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\/35026","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=35026"}],"version-history":[{"count":0,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/35026\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/36232"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=35026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=35026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=35026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}