2016-06-07 5 views
0

ich gelesen wählen, dass GCS Speicher REST api 3 Upload-Methoden unterstützt:Wie Upload-Methode in GCS Speicher

  • einfache HTTP hochgeladen
  • Upload chunked
  • wieder

Ich lade sehen dass google-api-services-storage-v1 den wiederaufgenommenen Upload-Ansatz verwendet, , aber ich bin neugierig, wie man das ändert, weil Lebenslauf hochladen 2 HTTP-Anfragen 1 für Metadaten und die zweite für Daten.

Anfrage Körper der ersten Anfrage ist nur {"name": "xxx"}.

InputStreamContent contentStream = new InputStreamContent(
      APPLICATION_OCTET_STREAM, stream); 

    StorageObject objectMetadata = new StorageObject()     
      .setName(id.getValue()); 

    Storage.Objects.Insert insertRequest = storage.objects().insert(
      bucketName, objectMetadata, contentStream); 

    StorageObject object = insertRequest.execute(); 

Antwort

0

Ich glaube, dass bestimmte Bibliothek ausschließlich wiederaufladbare Uploads verwendet. Fortsetzbare Uploads sind sehr nützlich für große Übertragungen, da sie Fehler beheben und den Upload fortsetzen können. Dies ist in einigen Fällen in der Tat nicht optimal, wenn Sie z. B. eine sehr große Anzahl sehr kleiner Objekte einzeln hochladen möchten.

Wenn Sie einfacher Uploads durchführen wollen, möchten Sie vielleicht eine andere Bibliothek, wie gcloud-java betrachten, die wie so direkte Uploads durchführen können:

Storage storage = StorageOptions.defaultInstance().service(); 
Bucket bucket = storage.get(bucketName); 
bucket.create(objectName, /*byte[] or InputStream*/, contentType); 

Das wird use only one request, obwohl für größere Uploads I empfehlen, bei wiederaufsetzbaren Uploads zu bleiben.