Delphi 10.4 Amazon AWS S3连接错误

时间:2020-06-03 02:45:45

标签: amazon-web-services delphi amazon-s3

我一直在使用下面的功能将数据上传到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;

1 个答案:

答案 0 :(得分:0)

以防万一任何人都可以使用该帮助。经过一番阅读和挖掘之后,我意识到解决方法是专门指定区域,因此在下面添加一行将解决10.4中的连接问题 ConAmazon.Region:='us-west-1';