כאשר אתה עובד עם Amazon S3 (שירות אחסון פשוט), ייתכן ואתה משתמש ב־ממשק האינטרנט של S3 כדי להוריד, להעתיק או להעלות קבצים לדליי S3. שימוש בממשק האינטרנט הוא לגמרי אפשרי, זהו מטרתו המקורית.
במיוחד עבור מנהלי מערכות שרגילים למקלדת יותר מאשר לפקודות במקלדת, הממשק האינטרנט הוא אולי הקל ביותר. אולם, ככל שמנהלים יתקלו בצורך לבצע פעולות קובץ בצורה גורמת להם להיות יכולים להיעזר בו.
לדרישות אוטומציה כאלו עם שירותי Amazon Web, כולל Amazon S3, כלי AWS CLI מספק למנהלים אפשרויות בממשק שורת פקודה לניהול דליי S3 ואובייקטים.
במאמר זה, תלמד איך להשתמש בכלי השורת פקודה של AWS CLI להעלאה, העתקה, הורדה וסנכרון של קבצים עם S3 של Amazon. תלמד גם את היסודות של הענקת גישה לדליי S3 שלך והגדרת פרופיל גישה זה לעבוד עם כלי AWS CLI.
דרישות מוקדמות
מאחר וזהו מאמר הוראות, יהיו דוגמאות והדגמות בסעיפים הבאים. כדי לעקוב בהצלחה, יהיה עליך לעמוד במספר דרישות.
- חשבון AWS. אם אין לך מנוי AWS קיים, תוכל להירשם ל-תכנית הבדיקה של AWS.
- דלי של AWS S3. ניתן להשתמש בדלי קיים אם תעדיף, אך מומלץ ליצור דלי ריק במקום. אנא הפנה אל יצירת דלי.
- A Windows 10 computer with at least Windows PowerShell 5.1. In this article, PowerShell 7.0.2 will be used.
- כלי הגרסה ה-2 של AWS CLI חייב להיות מותקן על המחשב שלך.
- תיקיות וקבצים מקומיים שתעלה או תסנכרן עם Amazon S3
הכנת הגישה שלך ל-AWS S3
נניח שכבר יש לך את הדרישות הנדרשות. היית חושב שכבר אתה יכול להתחיל ולפעול עם AWS CLI עם הדלי שלך ב-S3. כלומר, הלוואי והיה זה פשוט כל כך, נכון?
לאלו מכם שרק מתחילים לעבוד עם Amazon S3 או AWS בכלל, סעיף זה מטרתו לעזור לכם להגדיר גישה ל-S3 ולהגדיר פרופיל של AWS CLI.
התיעוד המלא ליצירת משתמש IAM ב-AWS ניתן למצוא בקישור שלהלן. יצירת משתמש IAM בחשבון ה-AWS שלך
יצירת משתמש IAM עם הרשאת גישה ל-S3
כאשר מבצעים גישה ל-AWS באמצעות ה-CLI, יהיה עליך ליצור משתמש אחד או יותר של IAM עם גישה מספקת למשאבים עם הם אתה מתכוון לעבוד. בסעיף זה, תיצור משתמש IAM עם גישה ל-Amazon S3.
כדי ליצור משתמש IAM עם גישה ל-Amazon S3, עליך תחילה להיכנס לתוך מרכז השליטה של AWS IAM. בקבוצת ניהול גישה, לחץ על משתמשים. לאחר מכן, לחץ על הוסף משתמש.

הזן את שם המשתמש IAM שאתה יוצר בתוך תיבת שם משתמש* כגון s3Admin. בבחירת סוג גישה*, סמן את גישת פרוגרמה. לאחר מכן, לחץ על הבא: הרשאות.

לאחר מכן, לחץ על קח מדיניות קיימת ישירות. לאחר מכן, חפש את שם המדיניות AmazonS3FullAccess וסמן אותה. כאשר סיימת, לחץ על הבא: תגיות.

יצירת תגיות היא אופציונלית בדף הוסף תגיות, וניתן פשוט לדלג על זה וללחוץ על הבא: לסקירה.

בדף סקירה, תוצג לך סיכום של החשבון החדש שנוצר. לחץ על צור משתמש.

לבסוף, כאשר המשתמש נוצר, עליך להעתיק את ערכי מפתח הגישה מזהה מפתח גישה וה-מפתח גישה סודי ולשמור אותם לשימוש מאוחר יותר. שים לב שזוהי הפעם היחידה בה תוכל לראות את הערכים הללו.

הגדרת פרופיל AWS על המחשב שלך
עכשיו שיצרת את המשתמש IAM עם הגישה המתאימה ל-Amazon S3, השלב הבא הוא להגדיר את פרופיל ה-CLI של AWS על המחשב שלך.
המקטע הזה מניח שכבר התקנת את כלי AWS CLI גרסה 2 כפי שנדרש. ליצירת פרופיל, תצטרך לספק את המידע הבא:
- ה-מזהה מפתח גישה של המשתמש IAM.
- ה-מפתח גישה סודי הקשור למשתמש IAM.
- שם האזור ברירת מחדל המתאים למיקום של דלת ה-S3 שלך ב-AWS. ניתן לבדוק את רשימת נקודות הקצה באמצעות קישור זה. במאמר זה, דלת ה-S3 של AWS ממוקמת באזור אסיה-שקם המזרחית (סידני), והנקודה הסופית המתאימה היא ap-southeast-2.
- פורמט הפלט ברירת המחדל. יש להשתמש ב־JSON לכך.
כדי ליצור את הפרופיל, פתח את PowerShell והקלד את הפקודה למטה ועקוב אחר ההוראות.
הזן את מזהה מפתח הגישה, מפתח הגישה הסודי, שם אזור ברירת המחדל, ו־שם ברירת המחדל לפלט. ראה את הדגמה למטה.

בדיקת גישה ל-CLI של AWS
לאחר הגדרת פרופיל CLI של AWS, ניתן לאמת כי הפרופיל עובד על ידי הרצת הפקודה למטה ב-PowerShell.
הפקודה למעלה צריכה לרשום את דלתות ה-S3 של אמזון שיש לך בחשבון שלך. הדגמה למטה מראה את הפקודה בפעולה. התוצאה מציינת כי רשימת דלתות S3 הזמינות מצביעה על הצלחת הגדרת הפרופיל.

כדי ללמוד על הפקודות של AWS CLI הספציפיות ל-Amazon S3, ניתן לבקר בעמוד ההתייחסות לפקודות AWS CLI S3.
ניהול קבצים ב-S3
עם AWS CLI, ניתן לבצע פעולות ניהול קבצים טיפוליות כמו העלאת קבצים ל-S3, הורדת קבצים מ-S3, מחיקת אובייקטים ב-S3, והעתקת אובייקטים ב-S3 למיקום S3 אחר. הכל נעשה על ידי הכרת הפקודה הנכונה, התחביר, הפרמטרים והאפשרויות הנכונות.
בסעיפים הבאים, הסביבה המשמשת מורכבת מהבאים.
- שני דליים S3, כלומר atasync1 ו־atasync2. התמונה למטה מציגה את הדליים S3 הקיימים ב- קונסולת Amazon S3 .

- תיקייה מקומית וקבצים הנמצאים תחת c:\sync.

העלאת קבצים יחידים ל-S3
כאשר אתה מעלה קבצים ל-S3, ניתן להעלות קובץ אחד בכל פעם, או על ידי העלאת מספר קבצים ותיקיות באופן רקורסיבי. לפי הדרישות שלך, תוכל לבחור באחת מהאפשרויות שבראש שתראה לך ראויה.
כדי להעלות קובץ ל-S3, יהיה עליך לספק שני ארגומנטים (מקור ויעד) לפקודת aws s3 cp
.
לדוגמה, כדי להעלות את הקובץ c:\sync\logs\log1.xml לשורש הדלי atasync1, תוכל להשתמש בפקודה הבאה.
הערה: שמות הדליים S3 תמיד מתחילים ב-S3:// כאשר משמשים עם AWS CLI
הרץ את הפקודה למעלה ב-PowerShell, אך שנה את המקור והיעד שמתאימים לסביבת העבודה שלך תחילה. הפלט ייראה באופן דומה להדגמה למטה.

הדגמה למעלה מראה כי הקובץ בשם c:\sync\logs\log1.xml הועלה ללא שגיאות ליעד S3 s3://atasync1/.
השתמש בפקודה למטה כדי לרשום את האובייקטים בשורש של קופסת ה-S3.
הרצת הפקודה למעלה ב-PowerShell תגרום לפלט דומה, כפי שמוצג בדוגמה למטה. כפי שניתן לראות בפלט למטה, הקובץ log1.xml נמצא בשורש של המיקום ב-S3.

העלאת מספר קבצים ותיקיות ל-S3 באופן רקורסיבי
הקטע הקודם הראה לך איך להעתיק קובץ יחיד למיקום ב-S3. מה קורה אם תרצה להעלות מספר קבצים מתיקייה ותתי-תיקיות? בהחלט אין לך רצון להפעיל את אותה פקודה מספר פעמים לשמות קבצים שונים, נכון?
לפקודה aws s3 cp
יש אפשרות לעבד קבצים ותיקיות באופן רקורסיבי, וזו אפשרות ה---recursive
.
כדוגמה, התיקייה c:\sync מכילה 166 אובייקטים (קבצים ותתי-תיקיות).

באמצעות האפשרות --recursive
, כל תוכן התיקייה c:\sync יתווסף ל-S3 תוך ששומר על מבנה התיקייה. כדי לבדוק, השתמש בקוד הדוגמא למטה, אך וודא שאתה משנה את המקור והיעד בהתאם לסביבת העבודה שלך.
תשים לב מהקוד למטה, המקור הוא c:\sync, והיעד הוא s3://atasync1/sync. המפתח /sync שאחרי שם הסל S3 מציין ל-AWS CLI להעלות את הקבצים בתיקייה /sync ב-S3. אם התיקייה /sync אינה קיימת ב-S3, היא תיווצר באופן אוטומטי.
הקוד למעלה יוביל לפלט, כפי שמוצג בהדגמה למטה.

העלאת מספר קבצים ותיקיות ל-S3 באופן בררני
בכמה מקרים, העלאת כל סוגי הקבצים אינה האפשרות הטובה ביותר. לדוג, כאשר יש רק צורך להעלות קבצים עם סיומות קבועות (לדוג, *.ps1). שתי אפשרויות נוספות זמינות לפקודת cp
הן --include
ו---exclude
.
בעוד שהשימוש בפקודה בקטע הקודם כולל את כל הקבצים בהעלאה רקורסיבית, הפקודה למטה תכלול רק את הקבצים התואמים את סיומת הקובץ *.ps1 ותייצא מההעלאה כל קובץ אחר.
ההדגמה למטה מראה כיצד הקוד עובד בביצוע.

דוגמה נוספת היא אם ברצונך לכלול מספר סיומות קובץ שונות, יהיה עליך לציין את האפשרות --include
מספר פעמים.
הפקודה למטה תכלול רק את הקבצים *.csv ו-*.png לפקודת ההעתקה.
הרצת הקוד למעלה בפוורשל תציג לך תוצאה דומה, כפי שמוצג למטה.

הורדת אובייקטים מ-S3
על פי הדוגמאות שלמדת במקטע זה, תוכל גם לבצע את פעולות ההעתקה להפך. כלומר, תוכל להוריד את האובייקטים ממיקום ה- S3 למחשב המקומי.
לבצע העתקה מ-S3 למקומי יחייב ממך להחליף את המקום של המקור והיעד. המקור הוא המיקום ב-S3, והיעד הוא הנתיב המקומי, כמו שמוצג למטה.
שים לב שאותן אפשרויות המשמשות כאשר אתה מעלה קבצים ל-S3 יכולות לשמש גם כאשר אתה מוריד אובייקטים מ-S3 למקומי. לדוגמה, להוריד את כל האובייקטים באמצעות הפקודה למטה עם האפשרות --recursive
.
העתקת אובייקטים בין מיקומי S3 שונים
לצד העלאת קבצים ותיקיות, באמצעות AWS CLI, תוכל גם להעתיק או להעביר קבצים בין שני מיקומי S3.
תגים למען הדוגמה הפקודה למטה משתמשת במיקום S3 אחד כמקור ובמיקום S3 אחר כיעד.
הדגמה למטה מראה איך הקובץ המקורי מועתק למיקום S3 אחר באמצעות הפקודה למעלה.

סנכרון קבצים ותיקיות עם S3
למדת כיצד להעלות, להוריד ולהעתיק קבצים ב-S3 באמצעות פקודות AWS CLI עד כה. במקטע זה, תלמד עוד פעולת קובץ אחת הזמינה ב-AWS CLI עבור S3, והיא פקודת sync
. פקודת sync
מעבדת רק קבצים שעודכנו, חדשים ונמחקים.
ישנם מקרים בהם יש לעדכן ולסנכרן את תוכן דלי S3 עם ספריית מקומית על שרת. לדוגמה, ייתכן שיש לך דרישה לשמור יומני עסקאות על שרת מסונכרנים אל S3 במרווחי זמן.
באמצעות הפקודה שלהלן, קבצי יומן בפורמט *.XML הממוקמים תחת התיקייה c:\sync בשרת המקומי יסונכרנו אל מיקום ה-S3 ב-s3://atasync1.
ההדגמה להלן מראה שלאחר הרצת הפקודה לעיל ב-PowerShell, כל קבצי ה-*.XML נטענו אל יעד ה-S3 s3://atasync1/.

סנכרון קבצים חדשים ומעודכנים עם S3
בדוגמה הבאה, נניח שתוכן קובץ היומן Log1.xml שונה. הפקודה sync
אמורה לזהות את השינוי ולהעלות את השינויים שנעשו בקובץ המקומי ל-S3, כפי שמוצג בהדגמה להלן.
הפקודה לשימוש נותרה זהה לדוגמה הקודמת.

כפי שניתן לראות מהפלט לעיל, מכיוון שרק הקובץ Log1.xml שונה מקומית, הוא גם היה הקובץ היחיד שסונכרן ל-S3.
סנכרון מחיקות עם S3
כברירת מחדל, הפקודה sync
אינה מעבדת מחיקות. כל קובץ שנמחק מהמיקום המקורי לא יוסר ביעד. ובכן, לא אלא אם כן תשתמש באפשרות --delete
.
בדוגמה הבאה, הקובץ בשם Log5.xml נמחק מהמקור. הפקודה לסנכרון הקבצים תורחב עם אפשרות --delete</code
כאשר אתה מפעיל את הפקודה למעלה ב-PowerShell, הקובץ שנמחק בשם Log5.xml צריך גם להיות מוחק במיקום S3 היעד. התוצאה הדוגמית מוצגת למטה.

סיכום
Amazon S3 הוא משאב מצוין לאחסון קבצים בענן. בעזרת כלי AWS CLI, הדרך בה אתה משתמש ב-Amazon S3 מורחבת ופותחת הזדמנות לאוטומציה של התהליכים שלך.
במאמר זה, למדת כיצד להשתמש בכלי AWS CLI כדי להעלות, להוריד, ולסנכרן קבצים ותיקיות בין מיקומים מקומיים ואמבריות S3. למדת גם כי תוכן קיטליות S3 יכול גם להיעתק או להיעבר למיקומים אחרים של S3.
ישנם תרחישי שימוש רבים יותר לשימוש בכלי AWS CLI לאוטומציה של ניהול קבצים עם Amazon S3. תוכל גם לנסות לשלב אותו עם סקריפט PowerShell ולבנות כלים משלך או מודולים שניתן להשתמש בהם. זה תלוי בך למצוא את ההזדמנויות האלו ולהראות את הכישורים שלך.