يمكن أن يكون لدى mc config host add
خيار لتخطي التحقق من بيانات الاعتماد.
mc config host add s3-somebucket https://s3.cn-north-1.amazonaws.com.cn XXXXX XXXXXXXXXX S3v4
mc: <ERROR> Unable to initialize new config from the provided credentials. The specified bucket does not exist.
إليك سياسات s3 iam الخاصة بي:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1506154426000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws-cn:s3:::somebucket/*"
]
},
{
"Sid": "Stmt1506154452000",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws-cn:s3:::somebucket"
]
}
]
}
في الإصدار القديم من mc ، لن يتحقق عندما أضفت بيانات الاعتماد.
وأعطي إذنًا صارمًا جدًا لمفتاح الوصول s3 الخاص بي. لذلك يفعل مثل هذا:
لا يمكن لمفتاح الوصول سرد اسم الحاوية.
تم الاختبار على نظام التشغيل macOS ، Ubuntu 16.04
يمكنك تقديم --api s3v4
مباشرة ولا يجب أن يستدعي مسار مكالمة التحقق.
@ tru2dagame إغلاق هذه المشكلة كما تمت الإجابة عليها. لا تتردد في إعادة فتح المشكلة إذا كنت تشعر بخلاف ذلك.
الإجابة محيرة بعض الشيء حيث أن (https://docs.minio.io/docs/minio-client-complete-guide) يحدد s3v4
كإعداد افتراضي. لقد نجح استخدام الخيار --api
بالنسبة لي (إصدار macos mc 2018-03-25T01). بدون الخيار ، أرى نفس الخطأ كما تم الإبلاغ عنه هنا.
rbetts إذا تم توفير الخيار --api
، يتم تخطي التحقق من بيانات الاعتماد. إذا لم تحدد الخيار ، فسيقوم بالتحقق الذي فشل في حالتك. سوف ننظر في إضافة الخيار في الوثائق
ما التفويض الدقيق الذي يحتاجه mc
للعمل بدون معلمة --api s3v4
؟ أعطي تصريح مستخدم s3 أدناه ولكنه لا يزال لا يعمل.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws-cn:s3:::<my-bucket>"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws-cn:s3:::<my-bucket>/*"
},
{
"Sid": "VisualEditor2",
"Effect": "Allow",
"Action": "s3:GetBucketLocation",
"Resource": "arn:aws-cn:s3:::<my-bucket>"
},
{
"Sid": "VisualEditor3",
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
لقد استخدمت الأمر مثل هذا وتلقيت رسالة خطأ أدناه:
$ docker run -it --entrypoint=/bin/sh minio/mc:RELEASE.2018-05-25T20-20-15Z
$ mc config host add s3 <endpoint> <key> <secret>; mc ls s3/<my-bucket>
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
mc: <ERROR> Unable to initialize new config from the provided credentials. The specified bucket does not exist.
mc: <ERROR> Unable to stat `<my-bucket>`. Requested file `<my-bucket>` not found
وإذا أضفت المعلمة --api s3v4
فكل شيء يعمل بشكل جيد.
يمكنك ذلك من خلال توفير --api s3v4 مباشرةً ولا ينبغي أن يستدعي مسار مكالمة التحقق من الصحة.
هذا عمل معي. لكن من المحير للغاية ومن المستحيل فهمه بدون محاكمة أو بدون زيارة هذه القضية.
يمكن أن يكون لدى mc config host add
تفسير بالقرب من وسيطة --api
، قائلاً إنه سيمنع الفحص النشط.
بالإضافة إلى ذلك ، عند إضافة --debug
إخراج * لا شيء * ، ينظر الأمر إليّ فقط بعيون فارغة ، لأكثر من دقيقة ..: /
التعليق الأكثر فائدة
يمكنك تقديم
--api s3v4
مباشرة ولا يجب أن يستدعي مسار مكالمة التحقق.