2017-01-13 1 views
0

Ich benutze awscli (S3 Api), um einige Anfragen mit meiner Objektablage für die Software zu bearbeiten. Ich kann die Bucket-Liste abrufen, Bucket erstellen oder löschen. Wenn ich versuche, eine Beispieldatei zu einem bestimmten Eimer zu kopieren, ich bin erhalte eine Fehlermeldung: aws --endpoint-url=https://s3-api.us-geo.objectstorage.softlayer.net s3 cp test.txt s3://my_test_bucket/filesawscli, die von uns berechnete Anforderungssignatur stimmt nicht mit der von Ihnen angegebenen Signatur überein.

ich die folgende Fehlermeldung erhalten (sowohl mit sdk apis, Python boto3 api und wascli getestet)

Antwort

1

Das ist seltsam - Sie scheinen die richtige Syntax zu verwenden. Wie übermitteln Sie Ihre Anmeldeinformationen? Der einfachste Weg, in einer ~/.aws/credentials Datei wäre das enthält:

[default] 
aws_access_key_id = {Access Key ID} 
aws_secret_access_key = {Secret Access Key} 

Wenn Sie die gleichen Fehler werden über verschiedene Tools/Bibliotheken dies wahrscheinlich das Problem. Wenn Sie Ihre Anmeldeinformationen korrekt eingerichtet haben und immer noch das Signaturproblem haben, müssen wir wahrscheinlich einen tieferen Tauchgang durchführen, um herauszufinden, was vor sich geht, denn es scheint, dass Sie nichts falsch machen.

+0

Ich benutze die 'aws configure' Befehl und mit evn Variablen (mit' SET VALUE = KEY'), ich bin der Lage, alle Inhalte meiner Eimer Liste kann aber nicht laden – HoussemFat

+0

Ok, sieht aus wie Sie Vielleicht hast du einen Defekt gefunden! Versuchen Sie, in '~/.aws/config' zu gehen und alles zu löschen, was eine Region angibt, und versuchen Sie dann erneut, einen Befehl auszuführen. –

+1

Ich testete es, aber keine Lösung ,, Ich verwende ein Windows-Betriebssystem, ich werde sehen, ob es mit os verwandt ist, weil es für ein Ubuntu-Betriebssystem funktioniert. trotzdem danke. – HoussemFat

0

Der Grund, warum Sie den Fehler erhalten haben, ist möglicherweise die Signaturversion ist anders.
IBM Cloud Object Storage mit Signatur Version 2, aber die Standardversion ist 4. http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html

Ich bin nicht sicher, wie die Signatur-Version von Locke und Python zu setzen.
In SDK für Java müssen Sie so einstellen, sonst haben Sie den Fehler.

AWSCredentialsProvider provider = loadCredentialProvider(); 

ClientConfiguration config = new ClientConfiguration(); 
config.withSignerOverride("S3SignerType"); 

// second arg region not needed 
EndpointConfiguration endpointConfiguration = 
     new EndpointConfiguration(us-geo.objectstorage.softlayer.net, ""); 

AmazonS3 cos = AmazonS3ClientBuilder.standard() 
     .withCredentials(provider) 
     .withClientConfiguration(config) 
     .withEndpointConfiguration(endpointConfiguration) 
     .build(); 
Verwandte Themen