如何获得桶中的对象列表,使用Appercept AWS SDK for Delphi ?

kh212irz  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(131)

我试图获取根桶中的对象列表,但它返回0个对象=(事实上,那里有三个对象。我对此很确定。)

uses
  AWS.S3, AWS.Core;
...

procedure TMainForm.FormCreate(Sender: TObject);
var
  opt:IAWSOptions;
begin
  ReportMemoryLeaksOnShutdown:=true;
  opt:=TAWSOptions.Create;
  opt.AccessKeyId:='*****';
  opt.SecretAccessKey:='*****';
  opt.Endpoint:=TAWSEndpoint.Create('https://s3.storage.selcloud.ru');
  opt.Region:='ru-1';
  s3aws:=TS3Client.Create(opt);
  var Response := s3aws.ListBuckets;
  StatusMemo.Lines.Add('Root bucket(s):');
  for var Bucket in Response.Buckets do begin
    StatusMemo.Lines.Add( '- ' + Bucket.Name );
    StatusMemo.Lines.Add( '- Objects: ' + IntToStr(Bucket.Objects.Count) );
    for var ObjName in Bucket.Objects do
      StatusMemo.Lines.Add( '- ' + ObjName.Key );
  end;
end;

连接工作,根存储桶到达,但Bucket.objects.Count返回0
在python通过boho3所有工作正常,检查,但我需要在 Delphi 中的解决方案

m1m5dgzv

m1m5dgzv1#

ListBuckets命令只提供发送方拥有的bucket的名称。要获取对象,需要为每个bucket发送单独的ListObjectsListObjectsV2命令。有关如何发送该命令,请参阅SDK文档。

相关问题