2016-09-19 8 views
0

Vom documentation on gsutil.Googles Befehl 'gsutil cp' führt eine Prüfsumme für die übertragene Datei aus. Macht Google Java Storage API das gleiche?

„Am Ende eines jeden Upload oder den Befehl gsutil cp herunterladen bestätigt, dass die Prüfsumme für die Quelldatei berechnet/Objekt entspricht der Prüfsumme der Dienst berechnet Wenn die Prüfsummen nicht übereinstimmen, gsutil löscht das beschädigte Objekt und gibt eine Warnmeldung aus. "

Und hier einige sample code mit ihren Java-Speicher-API:

public static void uploadFile(String name, String contentType, File file, String bucketName) 
    throws IOException, GeneralSecurityException { 
    InputStreamContent contentStream = new InputStreamContent(
      contentType, new FileInputStream(file)); 
    // Setting the length improves upload performance 
    contentStream.setLength(file.length()); 
    StorageObject objectMetadata = new StorageObject() 
     // Set the destination object name 
     .setName(name) 
     // Set the access control list to publicly read-only 
     .setAcl(Arrays.asList(
      new ObjectAccessControl().setEntity("allUsers").setRole("READER"))); 

    // Do the insert 
    Storage client = StorageFactory.getService(); 
    Storage.Objects.Insert insertRequest = client.objects().insert(
      bucketName, objectMetadata, contentStream); 

    insertRequest.execute(); 
} 

Ist eine Prüfsumme notwendig auszuführen? Soll ich es manuell machen?

Antwort

3

Wir empfehlen, bei allen Uploads und Downloads Prüfsummen zu berechnen und zu validieren, dass die von Ihnen berechnete Prüfsumme mit der des Dienstes übereinstimmt. Dies schützt Sie vor Client- oder Client-Bibliotheksfehlern, die die Daten auf dem Weg zur/aus der Cloud beschädigen könnten.

Ich werde einen Bug öffnen, um diesen Beispielcode zu aktualisieren, um die Prüfsumme zu berechnen.

Verwandte Themen