gpt4 book ai didi

delphi - 使用临时安全凭证通过 Delphi 将文件上传到 Amazon S3

转载 作者:行者123 更新时间:2023-12-02 22:53:53 24 4
gpt4 key购买 nike

我有一个 AWS S3 帐户并获得 SecretAccessKey、SessionToken、Expiration、AccessKeyId 项。我想以最简单的方式将一些文件上传到云端。

已阅读一些有关授权 header 的文档( http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html ),但仍然不明白如何构建它们))

此外,还看到了 Indy 的另一个示例,因此,请帮助使用我拥有的这些项目构建授权 header :SecretAccessKey、SessionToken、Expiration、AccessKeyId。可以使用“以单个 block 传输有效负载”模式+“签名有效负载选项”。

  FS := TFileStream.Create('c:\myfile.txt', fmOpenRead or fmShareDenyWrite);
try
IdHTTP1.Request.CustomHeaders.Values['Authorization'] := ...; // please help
IdHTTP1.Request.BasicAuthentication := False;
IdHTTP1.Request.Date := ...; //what should I enter here?
IdHTTP1.Request.Expect := '100-continue';
IdHTTP1.Request.ProtocolVersion := pv1_1;
...
IdHTTP1.Put('http://'+BucketName+'.s3.amazonaws.com/myfile.txt', FS);
finally
FS.Free;
end;

谢谢!

最佳答案

这是我使用云组件将文件上传到 Amazon 的例程:

function UploadFile(File: TBytes; FileName: string; Bucket: string): boolean;
var Service: TAmazonStorageService;
ConAmazon: TAmazonConnectionInfo;
begin
try
ConAmazon := TAmazonConnectionInfo.Create(nil);
ConAmazon.AccountKey := 'Dih71bG09****************';
ConAmazon.AccountName := 'AKIA***********';
ConAmazon.QueueEndpoint := 'queue.amazonaws.com';
ConAmazon.StorageEndpoint := 's3-eu-west-1.amazonaws.com';
ConAmazon.TableEndpoint := 'sdb.amazonaws.com';
ConAmazon.UseDefaultEndpoints := False;
Service := TAmazonStorageService.Create(ConAmazon);
Result := Service.UploadObject(Bucket, FileName, File, TRUE, nil, nil, amzbaPrivate, nil);
finally
ConAmazon.Free;
Service.Free;
end;
end;

关于delphi - 使用临时安全凭证通过 Delphi 将文件上传到 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com