我一直在使用下面的功能将数据上传到Amazon aws S3存储桶修改代码here。在Delphi 10.3.3中一切正常,但是在10.4中出现连接错误。我读过here,表示TAmazonRegion类型(在Data.Cloud.AmazonAPI中)有所更改,但找不到针对我的问题的修复程序。
任何帮助将不胜感激。
function downloadFile(FileName_origin : string; Bucket: string; memo: TMemo): boolean;
var Service: TAmazonStorageService;
ConAmazon: TAmazonConnectionInfo;
info : TCloudResponseInfo;
download_stream : TBytesStream;
bytes : TBytes;
begin
download_stream := TBytesStream.Create;
try
// filestream to tBytes
download_stream.Position := 0;
SetLength(bytes, download_stream.Size);
download_stream.ReadBuffer(bytes, download_stream.Size);
try
ConAmazon := TAmazonConnectionInfo.Create(nil);
ConAmazon.AccountKey := SECRETE_ACCESS_KEY;
ConAmazon.AccountName := ACCESS_KEY_ID;
ConAmazon.QueueEndpoint := 'queue.amazonaws.com';
ConAmazon.StorageEndpoint := 's3-us-west-1.amazonaws.com';
ConAmazon.TableEndpoint := 'sdb.amazonaws.com';
ConAmazon.UseDefaultEndpoints := False;
// storage objects
info := TCloudResponseInfo.Create;
Service := TAmazonStorageService.Create(ConAmazon);
try
Result := Service.GetObject(Bucket, filename_origin , download_stream);
finally
info.Free;
Service.Free;
end;
finally
ConAmazon.Free;
end;
finally
memo.Lines.LoadFromStream(download_stream);
download_stream.Free;
end;
end;
答案 0 :(得分:0)
以防万一任何人都可以使用该帮助。经过一番阅读和挖掘之后,我意识到解决方法是专门指定区域,因此在下面添加一行将解决10.4中的连接问题 ConAmazon.Region:='us-west-1';