]> source.dussan.org Git - jgit.git/commitdiff
AmazonS3: Buffer pushed pack content under $GIT_DIR 29/37029/1
authorShawn Pearce <sop@google.com>
Tue, 25 Nov 2014 17:54:58 +0000 (09:54 -0800)
committerShawn Pearce <sop@google.com>
Tue, 25 Nov 2014 18:21:48 +0000 (10:21 -0800)
This applies the same filesystem permissions as the source objects.
Users may override in properties files using the tmpdir value.

Change-Id: I3ec332cf41f12eae246cfaee9fd792c52cb2908b

org.eclipse.jgit/src/org/eclipse/jgit/transport/AmazonS3.java
org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportAmazonS3.java

index 99d8b09d87d30653f3b68398dec578c48b29b57a..722bfc489dbebd11f341cdf1ea808f5987cfac9b 100644 (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();
index b3a55a581b01c71bb70247e9ced0137741f55e2b..afaaa69a43463bceee021fbb7e023720b8e2126f 100644 (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();