Našao sam na net-u proceduru:
Code:
try
Text_Stream:= TStringStream.Create;
Text_Stream.LoadFromFile('C:\Projekti\XE\cloud\Popis.txt');
//Text_Byte := Text_Stream.Bytes;
ConAmazon := TAmazonConnectionInfo.Create(nil);
ConAmazon.AccountKey := AcKey;
ConAmazon.AccountName := AcName;
ConAmazon.StorageEndpoint := 'eu-central-1.s3.amazonaws.com';
Service := TAmazonStorageService.Create(ConAmazon);
Response := TCloudResponseInfo.Create;
buckets := TAmazonBucketResult.Create(bucket);
buckets := service.GetBucket(bucket , nil, Response, amzrEUCentral1);
for i := 0 to buckets.Objects.Count-1 do begin
m.Lines.Append('Name: ' + buckets.Objects[i].Name + '; LastModified: ' + buckets.Objects[i].LastModified + '; Storageclass: '+ buckets.Objects[i].StorageClass);
end;
bResult:= Service.UploadObject(bucket, 'Popis.txt', Text_Stream.Bytes , False, nil, nil, amzbaPrivate, Response);
if bResult = True then
ShowMessage('Upload success'+#13+IntToStr(Response.StatusCode)+' -> ' + Response.StatusMessage)
else
ShowMessage('Upload fails'+#13+IntToStr(Response.StatusCode)+' -> ' + Response.StatusMessage);
buckets := TAmazonBucketResult.Create(bucket);
buckets := service.GetBucket(bucket , nil, Response, amzrEUCentral1);
m.Lines.Append(' ******************* 2 **************');
for i := 0 to buckets.Objects.Count-1 do begin
m.Lines.Append('Name: ' + buckets.Objects[i].Name + '; LastModified: ' + buckets.Objects[i].LastModified + '; Storageclass: '+ buckets.Objects[i].StorageClass);
end;
Finally
Text_Stream.Free;
Service.Free;
ConAmazon.Free;
buckets.Free;
end;
try
Text_Stream:= TStringStream.Create;
Text_Stream.LoadFromFile('C:\Projekti\XE\cloud\Popis.txt');
//Text_Byte := Text_Stream.Bytes;
ConAmazon := TAmazonConnectionInfo.Create(nil);
ConAmazon.AccountKey := AcKey;
ConAmazon.AccountName := AcName;
ConAmazon.StorageEndpoint := 'eu-central-1.s3.amazonaws.com';
Service := TAmazonStorageService.Create(ConAmazon);
Response := TCloudResponseInfo.Create;
buckets := TAmazonBucketResult.Create(bucket);
buckets := service.GetBucket(bucket , nil, Response, amzrEUCentral1);
for i := 0 to buckets.Objects.Count-1 do begin
m.Lines.Append('Name: ' + buckets.Objects[i].Name + '; LastModified: ' + buckets.Objects[i].LastModified + '; Storageclass: '+ buckets.Objects[i].StorageClass);
end;
bResult:= Service.UploadObject(bucket, 'Popis.txt', Text_Stream.Bytes , False, nil, nil, amzbaPrivate, Response);
if bResult = True then
ShowMessage('Upload success'+#13+IntToStr(Response.StatusCode)+' -> ' + Response.StatusMessage)
else
ShowMessage('Upload fails'+#13+IntToStr(Response.StatusCode)+' -> ' + Response.StatusMessage);
buckets := TAmazonBucketResult.Create(bucket);
buckets := service.GetBucket(bucket , nil, Response, amzrEUCentral1);
m.Lines.Append(' ******************* 2 **************');
for i := 0 to buckets.Objects.Count-1 do begin
m.Lines.Append('Name: ' + buckets.Objects[i].Name + '; LastModified: ' + buckets.Objects[i].LastModified + '; Storageclass: '+ buckets.Objects[i].StorageClass);
end;
Finally
Text_Stream.Free;
Service.Free;
ConAmazon.Free;
buckets.Free;
end;
Dio koji čita sa cloud-a odradi posao, u memo dobijem pospis file-ova sa clouda.
UplodaObject ne napravi ništa, a poruka koju dobijem (Response) je:
404 -> Not Found - The bucket dos not exists (NoSuchBucket)
Kako nema bucket-a kad sa sa njega pročitao sadržaj?
U popisu mi daje za ime file-a na cloudu: dir1/dir2/file_name.ext Gdje upisati "dir1" i "dir1"? Da li umjesto "Popist.txt" upisati "dir1/dir2/Popis.txt" ?