{"id":65315,"date":"2024-06-06T00:22:52","date_gmt":"2024-06-05T20:52:52","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81\/"},"modified":"2024-06-06T00:22:52","modified_gmt":"2024-06-05T20:52:52","slug":"%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0644 \u067e\u0648\u0634\u0647 \u062f\u0631 S3 \u067e\u0633 \u0627\u0632 \u062d\u0630\u0641 \u062a\u0635\u0627\u062f\u0641\u06cc"},"content":{"rendered":"<p><\/p>\n<div data-article-id=\"1878400\" id=\"article-body\">\n<p>\u062d\u0630\u0641 \u062a\u0635\u0627\u062f\u0641\u06cc \u06a9\u0644 \u067e\u0648\u0634\u0647 (\u067e\u06cc\u0634\u0648\u0646\u062f) \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 S3 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0644\u062d\u0638\u0647 \u0627\u06cc \u0634\u06af\u0641\u062a \u0627\u0646\u06af\u06cc\u0632 \u0628\u0627\u0634\u062f.  \u062e\u0648\u0634\u0628\u062e\u062a\u0627\u0646\u0647\u060c \u0627\u06af\u0631 \u0646\u0633\u062e\u0647 \u0633\u0627\u0632\u06cc \u062f\u0631 \u0633\u0637\u0644 S3 \u0634\u0645\u0627 \u0641\u0639\u0627\u0644 \u0628\u0627\u0634\u062f\u060c \u06cc\u06a9 \u0631\u0627\u0647 \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0634\u0645\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.  \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u067e\u0648\u0634\u0647 \u062d\u0630\u0641 \u0634\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u067e\u0648\u0633\u062a\u0647 \u0633\u0627\u062f\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81\/#%D9%BE%D9%8A%D8%B4_%D9%86%D9%8A%D8%A7%D8%B2\" >\u067e\u064a\u0634 \u0646\u064a\u0627\u0632<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81\/#%D8%B1%D9%88%D8%B4_%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C\" >\u0631\u0648\u0634 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81\/#%D8%AA%D9%88%D8%B6%DB%8C%D8%AD_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA\" >\u062a\u0648\u0636\u06cc\u062d \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81\/#%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D8%AF%D8%B1_%D8%A2%D9%85%D8%A7%D8%B2%D9%88%D9%86_CloudShell\" >\u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 CloudShell<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%d9%86%d8%ad%d9%88%d9%87-%d8%a8%d8%a7%d8%b2%db%8c%d8%a7%d8%a8%db%8c-%da%a9%d9%84-%d9%be%d9%88%d8%b4%d9%87-%d8%af%d8%b1-s3-%d9%be%d8%b3-%d8%a7%d8%b2-%d8%ad%d8%b0%d9%81-%d8%aa%d8%b5%d8%a7%d8%af%d9%81\/#%DB%8C%D8%A7%D8%AF%D8%AF%D8%A7%D8%B4%D8%AA_%D9%87%D8%A7%DB%8C_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C\" >\u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627\u06cc \u067e\u0627\u06cc\u0627\u0646\u06cc<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%D9%8A%D8%B4_%D9%86%D9%8A%D8%A7%D8%B2\"><\/span>\n<p>  \u067e\u064a\u0634 \u0646\u064a\u0627\u0632<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u067e\u0648\u0634\u0647 \u062d\u0630\u0641 \u0634\u062f\u0647 \u062e\u0648\u062f\u060c \u0628\u0627\u06cc\u062f \u0646\u0633\u062e\u0647 \u0633\u0627\u0632\u06cc \u0631\u0627 \u062f\u0631 \u0633\u0637\u0644 \u0647\u062f\u0641 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u06cc\u06a9 \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632 \u062d\u06cc\u0627\u062a\u06cc \u0627\u0633\u062a.  \u0627\u06af\u0631 \u0646\u0633\u062e\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0631 \u0632\u0645\u0627\u0646 \u062d\u0630\u0641 \u0641\u0639\u0627\u0644 \u0646\u0628\u0648\u062f\u060c \u0627\u06cc\u0646 \u0628\u0627\u0631 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0645\u06a9\u0627\u0646\u200c\u067e\u0630\u06cc\u0631 \u0646\u06cc\u0633\u062a.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0646\u0633\u062e\u0647 \u0628\u0631\u0627\u06cc \u0645\u062d\u0627\u0641\u0638\u062a \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0646\u0633\u062e\u0647\u060c \u0628\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a AWS \u062f\u0631 \u0646\u0633\u062e\u0647 S3 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D9%88%D8%B4_%D8%A8%D8%A7%D8%B2%DB%8C%D8%A7%D8%A8%DB%8C\"><\/span>\n<p>  \u0631\u0648\u0634 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u062f\u0631 \u0645\u0648\u0631\u062f \u0646\u062d\u0648\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u067e\u0648\u0634\u0647 \u062d\u0630\u0641 \u0634\u062f\u0647 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\n<p><strong>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 AWS CLI \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u0633\u062a<\/strong>: \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0628\u0647 \u0631\u0627\u0628\u0637 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 AWS (CLI) \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f.  \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/strong>: \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f <code>delete_deletemarker_of_s3.sh<\/code>.<\/p>\n<pre class=\"highlight shell\"><code><span class=\"c\">#!\/bin\/bash<\/span>\n\n<span class=\"c\"># Get the time one hour ago in ISO 8601 format<\/span>\n<span class=\"nv\">one_hour_ago<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span><span class=\"nb\">date<\/span> <span class=\"nt\">-u<\/span> <span class=\"nt\">-d<\/span> <span class=\"s1\">'1 hour ago'<\/span> +<span class=\"s1\">'%Y-%m-%dT%H:%M:%SZ'<\/span><span class=\"si\">)<\/span>\n\n<span class=\"c\"># List all the latest delete markers<\/span>\n<span class=\"nv\">delete_markers<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span>aws s3api list-object-versions <span class=\"nt\">--bucket<\/span> my-bucket <span class=\"nt\">--prefix<\/span> my-folder\/ <span class=\"nt\">--query<\/span> <span class=\"s1\">'DeleteMarkers[?IsLatest==`true`].[Key, VersionId, LastModified]'<\/span> <span class=\"nt\">--output<\/span> text<span class=\"si\">)<\/span>\n\n<span class=\"c\"># Delete only the delete markers set within the last hour<\/span>\n<span class=\"k\">while <\/span><span class=\"nv\">IFS<\/span><span class=\"o\">=<\/span><span class=\"s1\">$'<\/span><span class=\"se\">\\t<\/span><span class=\"s1\">'<\/span> <span class=\"nb\">read<\/span> <span class=\"nt\">-r<\/span> key version_id last_modified<span class=\"p\">;<\/span> <span class=\"k\">do\n  if<\/span> <span class=\"o\">[[<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$last_modified<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">&gt;<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$one_hour_ago<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">]]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then\n    <\/span><span class=\"nb\">echo<\/span> <span class=\"s2\">\"Deleting delete marker for <\/span><span class=\"nv\">$key<\/span><span class=\"s2\"> with version ID <\/span><span class=\"nv\">$version_id<\/span><span class=\"s2\">, set at <\/span><span class=\"nv\">$last_modified<\/span><span class=\"s2\">\"<\/span>\n    aws s3api delete-object <span class=\"nt\">--bucket<\/span> my-bucket <span class=\"nt\">--key<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$key<\/span><span class=\"s2\">\"<\/span> <span class=\"nt\">--version-id<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$version_id<\/span><span class=\"s2\">\"<\/span>\n  <span class=\"k\">fi\ndone<\/span> <span class=\"o\">&lt;&lt;&lt;<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$delete_markers<\/span><span class=\"s2\">\"<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/strong>: \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"highlight shell\"><code>bash delete_deletemarker_of_s3.sh\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D9%88%D8%B6%DB%8C%D8%AD_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA\"><\/span>\n<p>  \u062a\u0648\u0636\u06cc\u062d \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\n<p><strong>\u06cc\u06a9 \u0633\u0627\u0639\u062a \u0642\u0628\u0644 \u0648\u0642\u062a \u0628\u06af\u06cc\u0631\u06cc\u062f<\/strong>: \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0632\u0645\u0627\u0646 \u0631\u0627 \u06cc\u06a9 \u0633\u0627\u0639\u062a \u0642\u0628\u0644 \u0627\u0632 \u0632\u0645\u0627\u0646 \u0641\u0639\u0644\u06cc \u062f\u0631 \u0642\u0627\u0644\u0628 ISO 8601 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<pre class=\"highlight shell\"><code><span class=\"nv\">one_hour_ago<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span><span class=\"nb\">date<\/span> <span class=\"nt\">-u<\/span> <span class=\"nt\">-d<\/span> <span class=\"s1\">'1 hour ago'<\/span> +<span class=\"s1\">'%Y-%m-%dT%H:%M:%SZ'<\/span><span class=\"si\">)<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u0622\u062e\u0631\u06cc\u0646 \u0646\u0634\u0627\u0646\u06af\u0631\u0647\u0627\u06cc \u062d\u0630\u0641 \u0631\u0627 \u0641\u0647\u0631\u0633\u062a \u06a9\u0646\u06cc\u062f<\/strong>: \u062a\u0645\u0627\u0645 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0634\u0627\u0646\u06af\u0631\u0647\u0627\u06cc \u062d\u0630\u0641 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0637\u0644 \u0648 \u067e\u06cc\u0634\u0648\u0646\u062f \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0641\u0647\u0631\u0633\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<pre class=\"highlight shell\"><code><span class=\"nv\">delete_markers<\/span><span class=\"o\">=<\/span><span class=\"si\">$(<\/span>aws s3api list-object-versions <span class=\"nt\">--bucket<\/span> my-bucket <span class=\"nt\">--prefix<\/span> my-folder\/ <span class=\"nt\">--query<\/span> <span class=\"s1\">'DeleteMarkers[?IsLatest==`true`].[Key, VersionId, LastModified]'<\/span> <span class=\"nt\">--output<\/span> text<span class=\"si\">)<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\u0646\u0634\u0627\u0646\u06af\u0631\u0647\u0627\u06cc \u062d\u0630\u0641 \u0627\u062e\u06cc\u0631 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f<\/strong>: \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0646\u0634\u0627\u0646\u06af\u0631\u0647\u0627\u06cc \u062d\u0630\u0641 \u062a\u06a9\u0631\u0627\u0631 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0645\u0648\u0627\u0631\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u0639\u062a \u06af\u0630\u0634\u062a\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0628\u0648\u062f\u0646\u062f \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<pre class=\"highlight shell\"><code><span class=\"k\">while <\/span><span class=\"nv\">IFS<\/span><span class=\"o\">=<\/span><span class=\"s1\">$'<\/span><span class=\"se\">\\t<\/span><span class=\"s1\">'<\/span> <span class=\"nb\">read<\/span> <span class=\"nt\">-r<\/span> key version_id last_modified<span class=\"p\">;<\/span> <span class=\"k\">do\n  if<\/span> <span class=\"o\">[[<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$last_modified<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">&gt;<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$one_hour_ago<\/span><span class=\"s2\">\"<\/span> <span class=\"o\">]]<\/span><span class=\"p\">;<\/span> <span class=\"k\">then\n    <\/span><span class=\"nb\">echo<\/span> <span class=\"s2\">\"Deleting delete marker for <\/span><span class=\"nv\">$key<\/span><span class=\"s2\"> with version ID <\/span><span class=\"nv\">$version_id<\/span><span class=\"s2\">, set at <\/span><span class=\"nv\">$last_modified<\/span><span class=\"s2\">\"<\/span>\n    aws s3api delete-object <span class=\"nt\">--bucket<\/span> my-bucket <span class=\"nt\">--key<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$key<\/span><span class=\"s2\">\"<\/span> <span class=\"nt\">--version-id<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$version_id<\/span><span class=\"s2\">\"<\/span>\n  <span class=\"k\">fi\ndone<\/span> <span class=\"o\">&lt;&lt;&lt;<\/span> <span class=\"s2\">\"<\/span><span class=\"nv\">$delete_markers<\/span><span class=\"s2\">\"<\/span>\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\u0628\u0627 \u062d\u0630\u0641 \u0646\u0634\u0627\u0646\u06af\u0631\u0647\u0627\u06cc \u062d\u0630\u0641\u060c \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062d\u0630\u0641 \u0631\u0627 \u0644\u063a\u0648 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0627\u0634\u06cc\u0627\u0621 \u062d\u0630\u0641 \u0634\u062f\u0647 \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f.  \u0634\u0631\u0637 \u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 \u0646\u0634\u0627\u0646\u06af\u0631 \u062d\u0630\u0641 \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u0639\u062a \u06af\u0630\u0634\u062a\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0641\u0642\u0637 \u062d\u0630\u0641\u200c\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u062e\u06cc\u0631 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u0648 \u0627\u0632 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0634\u06cc\u0627\u06cc\u06cc \u06a9\u0647 \u0639\u0645\u062f\u0627\u064b \u062f\u0631 \u06af\u0630\u0634\u062a\u0647 \u062d\u0630\u0641 \u0634\u062f\u0647\u200c\u0627\u0646\u062f \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA_%D8%AF%D8%B1_%D8%A2%D9%85%D8%A7%D8%B2%D9%88%D9%86_CloudShell\"><\/span>\n<p>  \u0627\u062c\u0631\u0627\u06cc \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 CloudShell<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0633\u0647\u0648\u0644\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u062f\u0631 Amazon CloudShell \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<ol>\n<li>Amazon CloudShell \u0631\u0627 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 AWS \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0622\u067e\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f <code>delete_deletemarker_of_s3.sh<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0647 CloudShell.<\/li>\n<li>\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u062f\u0631 \u0628\u0627\u0644\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"%DB%8C%D8%A7%D8%AF%D8%AF%D8%A7%D8%B4%D8%AA_%D9%87%D8%A7%DB%8C_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C\"><\/span>\n<p>  \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u0647\u0627\u06cc \u067e\u0627\u06cc\u0627\u0646\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062d\u062a\u0645\u0627 \u062a\u0639\u0648\u06cc\u0636 \u06a9\u0646\u06cc\u062f <code>my-bucket<\/code> \u0628\u0627 \u0646\u0627\u0645 \u0633\u0637\u0644 \u0648\u0627\u0642\u0639\u06cc \u0634\u0645\u0627 \u0648 <code>my-folder\/<\/code> \u0628\u0627 \u0646\u0627\u0645 \u067e\u0648\u0634\u0647 \u0648\u0627\u0642\u0639\u06cc \u0634\u0645\u0627 (\u067e\u06cc\u0634\u0648\u0646\u062f) \u062f\u0631 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a.<\/p>\n<p>\u0628\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647\u200c\u0633\u0631\u0639\u062a \u0627\u0632 \u062d\u0630\u0641\u200c\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc \u062f\u0631 S3 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u0634\u0631\u0648\u0637 \u0628\u0631 \u0627\u06cc\u0646\u06a9\u0647 \u0646\u0633\u062e\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f.  \u0627\u06af\u0631 \u0646\u0647\u060c \u0627\u0632 \u0627\u06cc\u0646 \u0641\u0631\u0635\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u0633\u062e\u0647\u200c\u0633\u0627\u0632\u06cc \u0631\u0627 \u062f\u0631 \u0633\u0637\u0644\u200c\u0647\u0627\u06cc \u0645\u0647\u0645 \u062e\u0648\u062f \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0632 \u062d\u0630\u0641\u200c\u0647\u0627\u06cc \u062a\u0635\u0627\u062f\u0641\u06cc \u0622\u06cc\u0646\u062f\u0647 \u0645\u062d\u0627\u0641\u0638\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062d\u0630\u0641 \u062a\u0635\u0627\u062f\u0641\u06cc \u06a9\u0644 \u067e\u0648\u0634\u0647 (\u067e\u06cc\u0634\u0648\u0646\u062f) \u062f\u0631 \u0622\u0645\u0627\u0632\u0648\u0646 S3 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0644\u062d\u0638\u0647 \u0627\u06cc \u0634\u06af\u0641\u062a \u0627\u0646\u06af\u06cc\u0632 \u0628\u0627\u0634\u062f. \u062e\u0648\u0634\u0628\u062e\u062a\u0627\u0646\u0647\u060c \u0627\u06af\u0631 \u0646\u0633\u062e\u0647 \u0633\u0627\u0632\u06cc \u062f\u0631 \u0633\u0637\u0644 S3 \u0634\u0645\u0627 \u0641\u0639\u0627\u0644 \u0628\u0627\u0634\u062f\u060c \u06cc\u06a9 \u0631\u0627\u0647 \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0634\u0645\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0627\u06cc\u0646 \u067e\u0633\u062a \u0648\u0628\u0644\u0627\u06af \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u067e\u0648\u0634\u0647 \u062d\u0630\u0641 \u0634\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u067e\u0648\u0633\u062a\u0647 \u0633\u0627\u062f\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u067e\u064a\u0634 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":65316,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media.dev.to\/cdn-cgi\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4qcqbjycytfquqwtkemb.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-65315","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/65315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=65315"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/65315\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/65316"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=65315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=65315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=65315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}