Browse Source

AmazonS3: Buffer pushed pack content under $GIT_DIR

This applies the same filesystem permissions as the source objects.
Users may override in properties files using the tmpdir value.

Change-Id: I3ec332cf41f12eae246cfaee9fd792c52cb2908b
tags/v3.4.2.201412180340-r
Shawn Pearce 9 years ago
parent
commit
67b8bcc1c4

+ 7
- 1
org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java View File

@@ -182,6 +182,9 @@ public class AmazonS3 {
/** Encryption algorithm, may be a null instance that provides pass-through. */
private final WalkEncryption encryption;

/** Directory for locally buffered content. */
private final File tmpDir;

/**
* Create a new S3 client for the supplied user information.
* <p>
@@ -251,6 +254,9 @@ public class AmazonS3 {
maxAttempts = Integer.parseInt(props.getProperty(
"httpclient.retry-max", "3")); //$NON-NLS-1$ //$NON-NLS-2$
proxySelector = ProxySelector.getDefault();

String tmp = props.getProperty("tmpdir"); //$NON-NLS-1$
tmpDir = tmp != null && tmp.length() > 0 ? new File(tmp) : null;
}

/**
@@ -452,7 +458,7 @@ public class AmazonS3 {
final ProgressMonitor monitor, final String monitorTask)
throws IOException {
final MessageDigest md5 = newMD5();
final TemporaryBuffer buffer = new TemporaryBuffer.LocalFile() {
final TemporaryBuffer buffer = new TemporaryBuffer.LocalFile(tmpDir) {
@Override
public void close() throws IOException {
super.close();

+ 5
- 1
org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportAmazonS3.java View File

@@ -147,7 +147,11 @@ public class TransportAmazonS3 extends HttpTransport implements WalkTransport {
throws NotSupportedException {
super(local, uri);

s3 = new AmazonS3(loadProperties());
Properties props = loadProperties();
if (!props.contains("tmpdir") && local.getDirectory() != null) //$NON-NLS-1$
props.put("tmpdir", local.getDirectory().getPath()); //$NON-NLS-1$

s3 = new AmazonS3(props);
bucket = uri.getHost();

String p = uri.getPath();

Loading…
Cancel
Save