kullanarak '/ * metin': Hep UploadObject çağrısının bir hata alırSignatureDoesNotMatch hatası aşağıdaki Delphi XE2 (güncelleme 4) kodu kullanarak TAmazonStorageService.UploadObject
var
ConInfo: TAmazonConnectionInfo;
RespInfo: TCloudResponseInfo;
Service: TAmazonStorageService;
Content: TBytes;
Headers: TStringList;
begin
ConInfo:=TAmazonConnectionInfo.Create(self);
ConInfo.AccountName:='YOUR ACCOUNT NAME';
ConInfo.AccountKey:='YOUR ACCOUNT KEY';
ConInfo.Protocol:='http';
Service:=TAmazonStorageService.Create(ConInfo);
RespInfo:=TCloudResponseInfo.Create;
SetLength(Content, 128);
FillMemory(@Content[0], 128, Byte('x'));
Headers:=TStringList.Create;
Headers.Values['Content-type']:='text/plain';
if not Service.UploadObject('YOUR BUCKET', 'test.txt', Content, TRUE, nil, Headers, amzbaPrivate, RespInfo) then
ShowMessage('Failed:' + RespInfo.StatusMessage);
:
Başarısız: HTTP/1.1 403 Yasaklandı - hesapladığımız istek imzası, verdiğiniz imzayla eşleşmiyor. Anahtarınızı kontrol edin ve yöntemini imzalayın. (SignatureDoesNotMatch)
Bu, yalnızca İçerik türü 'text/plain', 'text/html' veya herhangi bir metin olarak ayarlandığında gerçekleşir. Tam olarak aynı kodu kullanarak, içerik türünü yalnızca başka bir içerik türüne değiştirirseniz, ör. 'video/3gpp', sonra beklendiği gibi ve hatasız çalışır. Yüklenen nesnenin gerçek içeriği uygun değildir ve hatayı almayla ilgili bir dayanağı yoktur.
Delphi'de Hintçe kodundan izledim, ancak metin içeriği türünün neden her zaman bu hatayı verdiğini anladım.
Herhangi bir fikrin var mı?
Kendinizi düzeltmek için sevindim sevindim. metin/html updload çalışırken bu tam olarak aynı sorun.O anda sadece "html" başvurdu - ama sonra Internet Explorer dosyaları görüntüleme sorunları vardı. –