TAmazonConnectionInfo および TAmazonStorageService Demo を使用して、Amazon AWS S3 に接続しようとしています。接続は完全に機能します。バケットの一覧表示、バケット ファイルの一覧表示、ファイルのダウンロードとアップロードを行うことができます....しかし、EureakLog は AWS S3 デモでメモリ リークを報告します。Marko Cantu によるオリジナルのデモでは、FormCreate で TAmazonStorageService を作成しましたが、FormDestroy で TAmazonStorageService を破棄しませんでした。
メモリ リークを観察した後、TAmazonStorageService を nil に設定し、FormDestroy で解放しましたが、EurekaLog は引き続きメモリ リークを報告し、s3Service を指しています:= TAmazonStorageService.Create(AmazonConnectionInfo1);
ここで何か問題がありますか?メモリリークを防ぐために何か他のものを処分する必要がありますか?
procedure TS3ClientForm.FormCreate(Sender: TObject);
begin
AmazonConnectionInfo1.AccountName := 'XXXXXXXXXXXXXXXXXXXXXX';
AmazonConnectionInfo1.AccountKey := 'KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK';
Caption := AmazonConnectionInfo1.StorageEndpoint;
{ Create an s3Service }
s3Service := TAmazonStorageService.Create(AmazonConnectionInfo1);
end;
procedure TS3ClientForm.FormDestroy(Sender: TObject);
begin
{ Free the s3Service }
s3Service := nil;
s3Service.Free;
end;