Die Aktualisierung einer Datei in einem Amazon S3-bucket

Ich bin versucht, eine Zeichenfolge angefügt an das Ende einer text-Datei gespeichert in S3.
Momentan habe ich nur Lesen Sie den Inhalt der Datei in eine Zeichenfolge, hängen meine neuen text ein und speichern Sie die Datei wieder auf S3.
Gibt es einen besseren Weg, dies zu tun. Ich bin thinkinig, wenn die Datei >>> 10MB dann liest die gesamte Datei würde nicht eine gute Idee sein, wie also sollte ich alles richtig mache?

Aktuellen code
[code]

private void saveNoteToFile( String p_note ) throws IOException, ServletException    
{
    String str_infoFileName =  "myfile.json"; 

    String existingNotes = s3Helper.getfileContentFromS3( str_infoFileName  ); 
    existingNotes += p_note;
    writeStringToS3( str_infoFileName , existingNotes );        
}

public void writeStringToS3(String p_fileName, String p_data) throws IOException 
{
  ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream( p_data.getBytes());

  try {
      streamFileToS3bucket(  p_fileName, byteArrayInputStream, p_data.getBytes().length);
  } 
  catch (AmazonServiceException e)
  {
      e.printStackTrace();
  } catch (AmazonClientException e)
  {
      e.printStackTrace();
  }
}

public void streamFileToS3bucket( String p_fileName,  InputStream input, long size)
{
    //Create sub folders if there is any in the file name.
    p_fileName = p_fileName.replace("\\", "/");
    if( p_fileName.charAt(0) == '/')
    {
        p_fileName = p_fileName.substring(1, p_fileName.length());
    }
    String folder = getFolderName( p_fileName );
    if( folder.length() > 0)
    {
        if( !doesFolderExist(folder))
        {
            createFolder( folder );
        }
    }
    ObjectMetadata metadata =  new ObjectMetadata();
    metadata.setContentLength(size);
    AccessControlList acl = new AccessControlList();
    acl.grantPermission(GroupGrantee.AllUsers, Permission.Read);

    s3Client.putObject(new PutObjectRequest(bucket, p_fileName , input,metadata).withAccessControlList(acl));
}

[/code]

InformationsquelleAutor MayoMan | 2015-10-13

Schreibe einen Kommentar