// Create or load a stream of data to upload.
var LStream := TMemoryStream.Create;
var S3 := TS3Client.Create;
var LUploader := TS3MultipartUploader.Create(
S3)
as IS3MultipartUploader;
// Upload in 10 MegaByte parts.
LUploader.PartSize := 10 * 1024 * 1024;
LUploader.Upload(
LStream,
'a-destination-bucket',
'a-destination-key'
False,
procedure(
const AUploadId:
string; APartNumber: Integer; APartSize, APartWriteCount, AOverallSize, AOverallWriteCount: Int64;
var AAbort: Boolean)
begin
// Update your user interface with current progress.
end
);