Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.026 pregleda

Najnovija ↓

Delphi XE 10.1 i Cloud 26.03.2019. u 23:05 · pre 92 meseca #1
Imam problem sa upload-om na cloud.
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;


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" ?
Re: Delphi XE 10.1 i Cloud 27.03.2019. u 00:02 · pre 92 meseca #2
Da li Delphi ima neke primere za to? Ili mozda sam amazon, neki swagger ili PostMan da mozes lako videti sta salje.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Delphi XE 10.1 i Cloud 27.03.2019. u 12:49 · pre 92 meseca #3
Ono što sam našao na net-u ne radi. Tj. radi djelomično: mogu očitati sadržaj bucketa, ali ne i napraviti uploda file-a.

Kada izmjenim:
Code:

bResult:= Service.UploadObject(bucket, 'Popis.txt', Text_Stream.Bytes , False, nil, nil, amzbaPrivate, Response);


u
Code:

bResult:= Service.UploadObject(bucket, bucket + ':Popis.txt', Text_Stream.Bytes , False, nil, nil, amzbaPrivate, Response);


tada dobijem drugu obavijest o grešci:
„Forbiden – The requset signature we calculated does not match the signature you privede. Check your key and signing method. (SigrnatureDoesNotMatch)“
Re: Delphi XE 10.1 i Cloud 27.03.2019. u 13:31 · pre 92 meseca #4
Uspio sam rijšiti problem, možda će kome zatrebati:

Izmjenio sam liniju:
Code:

ConAmazon.StorageEndpoint := 'eu-central-1.s3.amazonaws.com';


tako da "s3" dođe na početak:

Code:

ConAmazon.StorageEndpoint := 's3-eu-central-1.amazonaws.com';


Isto tako, putanja na cloudu se navodi kao:
Code:

bResult:= Service.UploadObject(bucket, 'dir1/dir2/file.txt', Text_Byte, False, nil, Headers, amzbaPrivate, Response);

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme