הצגת קבצים המאוחסנים באמאזון S3, עם הרשאה
-
פתחתי 'בוקט' (דלי) בS3 של אמזון ,ואני רוצה להציג את התמונות בדף HTML.
להציג אותם כשהתמונה מאושרת לצפיה ציבורית זה פשוט (כמו כל הצגת תמונה רגילה), אבל כשצריך הרשאות להצגת התמונה - לא מצאתי דוגמא איך עושים את זה.(כשניגשים לתמונה בלי הרשאה אז התוצאה היא XML כזה
<Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>4DE00EB1BC6288C2</RequestId> <HostId> zCIH8CSnJudrxRu5wsA5IKqXJ0JyDJLdsjjvyTdUj8zNJmY23Vvd3+7fYfVFJj65SgIsA+urjqs= </HostId> </Error>
איפה יש דוגמא איך עושים את זה?
תודה.נ.ב. אני לא צריך כרגע את כל המנגנון של יצירת ההרשאות אלא רק את הדוגמא של הHTML.
-
לא הבנת אותי עם הטוקן.
יש לך מזהה של באקט ושל קובץ. אתה מבקש מאמזון ליצור לקובץ הזה URL זמני.
תראה פה: https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-presigned-url.html$cmd = $s3Client->getCommand('GetObject', [ 'Bucket' => 'my-bucket', 'Key' => 'testKey' ]); $request = $s3Client->createPresignedRequest($cmd, '+20 minutes'); // Get the actual presigned-url $presignedUrl = (string)$request->getUri();
המשתנה presignedUrl מכיל כתובת שמאפשרת גישה ציבורית (לכל מי שמחזיק את הלינק כמובן) לתמונה הפרטית שלך, למשך 20 דקות.
-
האם ניתן להגדיל את האשראי של הגישה לתמונות אחרי שהטוקן נוצר?
(אסביר:
שיטת הפעולה שלי היא שכל התמונות מסודרות במבנה היררכיוני של 'עץ תיקיות', וגם אם יש 10 רמות של תיקיות אבל הקליינט מקבל מראש אובייקט JSON אחד שכולל את כל העץ תיקיות. (אח"כ מתבצע ניווט בין התיקיות ( = בין הרמות בJSON) ע"י שינוי תצוגת צד הלקוח בלבד באותו קומפוננט).
במבנה הזה, גם התמונות נשלחות מראש. וזאת אומרת שאם לקוח נמצא בתיקיה אחת ואחרי 20 דקות מפתיחת הסשן הוא עובר תצוגה, הוא יקבל שגיאת קריאת תמונות. אני מחפש איך לפתור את זה).