Aws-cli: لا تحتفظ مزامنة s3 بالأذونات عبر المجموعات

تم إنشاؤها على ٢٧ أغسطس ٢٠١٤  ·  34تعليقات  ·  مصدر: aws/aws-cli

عندما أقوم بالمزامنة عبر الحاويات بأمر:

aws s3 sync s3: // bucket1 s3: // bucket2

أتوقع أن يكون للملفات الموجودة في bucket2 نفس الأذونات مثل الملفات الموجودة في bucket1 افتراضيًا حيث إنها "مزامنة"

بدلاً من ذلك ، لديهم فقط الأذونات الافتراضية.

feature-request s3 s3copy-extra-data s3sync

التعليق الأكثر فائدة

نظرًا لأن الأمر استغرق بعض الوقت بالنسبة لي لاكتشاف أن الأذونات لم تتم مزامنتها ، فربما يتم تحديث وثائق مزامنة s3 إلى s3 للإشارة إلى أن البيانات فقط وليس الأذونات التي تتم مزامنتها ستوفر وقتًا لشخص آخر في المستقبل.

شكرا لك مرة أخرى

ال 34 كومينتر

هل كل الملفات لها نفس الأذونات؟ لأنه في الوقت الحالي يمكنك تشغيل الأمر sync باستخدام --acl لتعيين الأذونات. ومع ذلك ، فإن تشغيل الأمر sync بدون وسيطات اختيارية أخرى لا يبحث عن الأذونات ويتأكد عند نقل الكائن ، أن له نفس الأذونات التي يتمتع بها الكائن الأصلي. سيتعين علينا إضافة وسيطة / ميزة إضافية للتعامل معها أيضًا.

لا - إذا كانت جميع الملفات لها نفس الأذونات ، يمكنني استخدام علامة --acl.

هذه الميزة ضرورية حقًا لآلية المزامنة ، خاصةً عندما يكون لديك آلاف الملفات بأذونات مختلفة وتريد مزامنة حقيقية عبر مجموعات وليس مجرد نسخة من الملفات.

هل تعرف طريقة أخرى للحصول على أذونات على أساس كل ملف ، بحيث يمكنني كتابة هذا بسهولة كافية؟

شكرا على المساعدة.

نعم إذا قمت بتشغيل aws s3api get-object-acl على كل عنصر. يمكنك الحصول على ACL. ها هي المستندات الخاصة بالأمر.
http://docs.aws.amazon.com/cli/latest/reference/s3api/get-object-acl.html

حسنًا - شكرًا لك على ذلك ، ولكن هذه الميزة ستظل موضع تقدير كبير في المزامنة ، إن لم يكن افتراضيًا ، فستكون علامةpreserve-s3-acl جيدة.

لا مشكلة. سننظر في الميزة. أعتقد أن سبب عدم تنفيذها هو أن العملية نفسها قد تكون مكلفة. لتحديد العناصر الموجودة في حاوية s3 ، يتم إجراء استدعاء لـ ListObjects ولكن هذا لا يُرجع قوائم التحكم بالوصول لكل كائن. في المقابل ، سيتعين علينا العودة وتشغيل GetObjectAcl على كل عنصر مدرج ، الأمر الذي قد يستغرق بعض الوقت إذا كان هناك آلاف العناصر في المجموعة.

نظرًا لأن الأمر استغرق بعض الوقت بالنسبة لي لاكتشاف أن الأذونات لم تتم مزامنتها ، فربما يتم تحديث وثائق مزامنة s3 إلى s3 للإشارة إلى أن البيانات فقط وليس الأذونات التي تتم مزامنتها ستوفر وقتًا لشخص آخر في المستقبل.

شكرا لك مرة أخرى

أي تحديثات على هذا؟

لقد أضفت طلب سحب (# 1535) لمعالجة هذا (أيضًا عمليات نقل أخرى من S3 إلى S3 ، مثل copy ) قبل بضعة أسابيع. أي فرصة للنظر في إدراجها؟

مرحبًا ، أعلم أنه سلسلة رسائل قديمة ، لكننا حللنا هذا من خلال مزامنة واحدة حسب نوع الإذن. خلاصة القول: يمكنك تصفية المزامنة حسب اسم المفتاح باستخدام - استبعاد و - تضمين ، كما يمكنك تحديد قائمة التحكم في الوصول (ACL) لكل مزامنة ... لذلك ، إذا كان لديك نمط مفاتيح تحتاج إلى تعيين أذونات مختلفة ، فقم بتشغيل مزامنة الأمر عدة مرات تحتاجها مع خيارات مختلفة لقوائم التحكم في الوصول. إنها بعيدة عن المثالية ، لكنها تعمل!

هل لديك أي أفكار من فريق AWS؟

أقوم بدفع مستودعات git الخاصة بي إلى S3 فقط من أجل النسخ الاحتياطية. وبعد ذلك عندما أقوم بمزامنتها مرة أخرى ، تغيرت جميع أنواع الأذونات.

لم تعد جميع ملفات bin القابلة للتنفيذ قابلة للتنفيذ ، وحالة git تزعجها.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1 ، نعم ، لقد تم تسمية الحاويات الخاصة بي بنقطة زمنية ، وكان لا بد من تغييرها لتكون متوافقة مع https من خلال واجهة السحابة. تمت مزامنتها مع الحاويات الجديدة ذات الأسماء الصحيحة. لا يمكن الوصول إلى الملفات. اقرأ عن الأذونات. توجد أذونات مستوى الكائن. لا يوجد أمر لتغيير جميع أذونات مستوى الكائن في حاوية. أتساءل كيف نمضي قدما. تبدو الأذونات من خلال واجهة المستخدم الرسومية لـ aws متشابهة تمامًا من كلا المجموعتين ، ولكن عند البحث عن قائمة التحكم في الوصول من خلال cli ، أرى أن الحاوية الأصلية كانت تتمتع بممنوح إضافي لم يتم نسخه.
{
"المستفيد": {
"النوع": "المجموعة" ،
"URI": " http://acs.amazonaws.com/groups/global/AllUsers "
} ،
"إذن": "قراءة"
}

صباح الخير!

نحن نغلق هذه المشكلة هنا على GitHub ، كجزء من ترحيلنا إلى

سيتيح لنا ذلك الحصول على أهم الميزات لك ، من خلال تسهيل البحث عن الميزات التي تهتم بها وإظهار الدعم لها ، دون إضعاف المحادثة مع تقارير الأخطاء.

ككتاب تمهيدي سريع لـ UserVoice (إن لم يكن مألوفًا بالفعل): بعد نشر الفكرة ، يمكن للأشخاص التصويت على الأفكار ، وسيستجيب فريق المنتج مباشرةً للاقتراحات الأكثر شيوعًا.

لقد قمنا باستيراد طلبات الميزات الحالية من GitHub - ابحث عن هذه المشكلة هناك!

ولا تقلق ، ستظل هذه المشكلة موجودة على GitHub من أجل الأجيال القادمة. نظرًا لأنه استيراد نصي فقط للمنشور الأصلي في UserVoice ، سنظل نضع في اعتبارنا التعليقات والمناقشات الموجودة بالفعل هنا حول مشكلة GitHub.

سيظل GitHub هو القناة للإبلاغ عن الأخطاء.

مرة أخرى ، يمكن الآن العثور على هذه المشكلة من خلال البحث عن العنوان على: https://aws.uservoice.com/forums/598381-aws-command-line-interface

- فريق أدوات وأدوات AWS SDK

يمكن العثور على هذا الإدخال على وجه التحديد على UserVoice على: https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168325-s3-sync-does-not-preserve-permissions-across- باك

ASayre - قد يكون هذا هو المكان الخطأ لإجراء هذه المناقشة ، ولكن هل يمكنك توضيح سبب تقسيم Amazon بشكل محرج للمناقشات حول AWS CLI عبر GitHub و UserVoice؟

تبدو طلبات الميزات مناسبة هنا على GitHub. من السهل نسبيًا تصفية طلبات الميزات فقط ، بل وحتى الترتيب حسب الطلبات الأكثر شيوعًا:

screen shot 2018-03-24 at 12 34 47 am

يسهل GitHub أيضًا مشاركة مقتطفات التعليمات البرمجية أو الرجوع إلى مشكلات أخرى (مثل # 1060 ، المرتبط بهذه المشكلة) ، وجزء كبير من قاعدة مستخدمي AWS CLI نشط هنا بالفعل على GitHub.

بناءً على تعليقات المجتمع ، قررنا إعادة طلبات الميزات إلى مشكلات GitHub.

هل يأتي أي شخص بحل لائق لإنجاز ذلك؟ هناك حاجة ماسة للوظيفة.

الإجابة أعلاه تفرض * أن تكون مقروءة للجمهور. هذا لا يحافظ على الأذونات.

ما هو التقدم؟ أنا أيضا واجهت هذه المشكلة. الآن أنا فقط أستخدم المزامنة - تضمين / استبعاد لحل هذه المشكلة.

هل يريد أي شخص أن يدفع لي مقابل العمل على هذا؟

4 سنوات ومع ذلك يستمر هذا الكابوس. لدي أكثر من 10 ملايين من الملفات وكلها فقدت أذوناتها أثناء النسخ. كيف يمكن حدوث شيء بسيط مثل الاحتفاظ بالأذونات؟

+1

بالنسبة لأي شخص آخر قادم إلى هنا ، تمكنت من استخدام هذا لنسخ دلو إلى آخر والاحتفاظ بقوائم ACL: https://github.com/cobbzilla/s3s3mirror/tree/2.1-stable

إنها أيضًا أسرع بشكل ملحوظ.

بالنسبة لي ، أنا أستخدم s3 حاليًا لإجراء نسخ احتياطي لمجلدات العمل الخاصة بي. يتضمن ذلك git repo ، و repo الخاص بي يظل مرعبًا بعد كل تغييرات الأذونات.

بالنسبة لي ، كان الحل هو إيجاد طريقة لإعادة تعيين الأذونات فقط لكل ريبو. إلى أن تُصلح AWS بريدهم غير الهام ، هذا هو الحل بالنسبة لي.

git config --global --add alias.permission-reset '!git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply'

لقد وجدت الحل هنا:

https://stackoverflow.com/questions/2517339/how-to-recover-the-file-permissions-to-what-git-thinks-the-file-should-be

أهلا،

لقد واجهت نفس المشكلة - كان لدي دلو به الكثير من الأشياء ، بينما يجب أن يكون بعضها متاحًا للجمهور. اضطررت إلى نسخ دلو كامل إلى دلو آخر مع الحفاظ على قوائم ACL وبالطبع ، فإن إعداد قوائم ACL يدويًا سيأخذني وقتًا طويلاً.

لقد أنشأت هذا البرنامج النصي البسيط في Python الذي ينسخ الكائنات من دلو إلى آخر ويقوم أيضًا بإعداد قوائم ACL له.

تفضل ألقي نظرة:
https://github.com/terminator9999/aws-s3-bucket-copy/

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات