Another version that directly reads BLOB without going through an intermediate object.

This commit is contained in:
Kohsuke Kawaguchi
2016-12-17 06:55:44 -08:00
parent 6380cf9ed0
commit e6ee278fde
2 changed files with 39 additions and 0 deletions

View File

@@ -31,6 +31,7 @@ import org.apache.commons.lang.StringUtils;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.io.Reader;
@@ -818,13 +819,30 @@ public class GHRepository extends GHObject {
}
/**
* Obtains the metadata & the content of a blob.
*
* <p>
* This method retrieves the whole content in memory, so beware when you are dealing with large BLOB.
*
* @see <a href="https://developer.github.com/v3/git/blobs/#get-a-blob">Get a blob</a>
* @see #readBlob(String)
*/
public GHBlob getBlob(String blobSha) throws IOException {
String target = getApiTailUrl("git/blobs/" + blobSha);
return root.retrieve().to(target, GHBlob.class);
}
/**
* Reads the content of a blob as a stream for better efficiency.
*
* @see <a href="https://developer.github.com/v3/git/blobs/#get-a-blob">Get a blob</a>
* @see #getBlob(String)
*/
public InputStream readBlob(String blobSha) throws IOException {
String target = getApiTailUrl("git/blobs/" + blobSha);
return root.retrieve().withHeader("Accept","application/vnd.github.VERSION.raw").asStream(target);
}
/**
* Gets a commit object in this repository.
*/