Ich versuche, einen S3-Bucket einzurichten, um anonyme Uploads zu akzeptieren und gleichzeitig dem Bucket-Besitzer volle Rechte zu gewähren und öffentlichen Lesezugriff zu verhindern. Nach dem Code von here habe ich die Bucket-Richtlinie unten eingerichtet. Ich möchte curl verwenden, um den Eimer zu laden, aber alles, was ich bekommen habe, istAmazon AWS S3-Bucket anonymer Upload mit Hilfe von curl
Zugriff verweigert
Hier ist der Eimer Politik:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "allow-anon-put",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::[mybucket]/uploads/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
},
{
"Sid": "deny-other-actions",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::[myid]:root"
},
"NotAction": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": "arn:aws:s3:::[mybucket]/*"
}
]
}
Und die Locke POST :
curl --request PUT --upload-file "thefile.gif" -k https://[mybucket].s3.amazonaws.com/uploads/
Es ist wirklich, wirklich, wirklich keine Rechtfertigung für anonyme Uploads ermöglicht. Keiner. Aber da Ihre Richtlinie "x-amz-acl: bucket-owner-full-control" erfordert, haben Sie versucht, eine Anfrage zu stellen, die mit Ihrer Richtlinie übereinstimmt? 'curl ... -H 'x-amz-acl: Eimer-Besitzer-volle Kontrolle'' –
Danke. Das hat funktioniert. Jetzt suche ich nach vordefinierten POST-URLs für bessere Sicherheit, kann aber die curl-Abfragezeichenfolge nicht richtig abrufen. Hier eine neue Frage erstellt, wenn Sie helfen können. http://stackoverflow.com/q/43991783/3198281 – UltrasoundJelly