diff --git a/server-data-store/src/main/resources/server-data-store-config.properties b/server-data-store/src/main/resources/server-data-store-config.properties
index 5717f55f1a53bcd6482de856a067c409f184513b..cf70d73c76e43206cd6ebc26dd13db0fe9adc45c 100755
--- a/server-data-store/src/main/resources/server-data-store-config.properties
+++ b/server-data-store/src/main/resources/server-data-store-config.properties
@@ -12,7 +12,7 @@ httpServerUri=/data-store-server
 httpServerPort=8085
 httpMaxContentLength=1024
 
-maxReadSizeInBytes=1024
+maxReadSizeInBytes=1048576
 authenticationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.DummyAuthenticationInfoProvider
 authorizationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.DummyAuthorizationInfoProvider
 poolSize=50
diff --git a/server-data-store/src/test/java/ch/ethz/sis/afsserver/client/BaseApiClientTest.java b/server-data-store/src/test/java/ch/ethz/sis/afsserver/client/BaseApiClientTest.java
index c7e0c6b0122ebd302ab5d084c43b622f4adfe909..a7e53cc5f476bb887fba8423153d6f0505c3eab4 100644
--- a/server-data-store/src/test/java/ch/ethz/sis/afsserver/client/BaseApiClientTest.java
+++ b/server-data-store/src/test/java/ch/ethz/sis/afsserver/client/BaseApiClientTest.java
@@ -17,23 +17,34 @@
 
 package ch.ethz.sis.afsserver.client;
 
-import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.*;
-
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.net.URI;
+import java.net.URL;
 import java.nio.file.Path;
 import java.util.List;
+import java.util.Set;
 import java.util.UUID;
 
-import ch.ethz.sis.afsapi.dto.File;
-import ch.ethz.sis.shared.io.IOUtils;
-import org.junit.*;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.Test;
 
 import ch.ethz.sis.afs.manager.TransactionConnection;
+import ch.ethz.sis.afsapi.dto.File;
 import ch.ethz.sis.afsclient.client.AfsClient;
 import ch.ethz.sis.afsserver.server.Server;
+import ch.ethz.sis.shared.io.IOUtils;
 
 public abstract class BaseApiClientTest
 {
@@ -53,8 +64,14 @@ public abstract class BaseApiClientTest
 
     protected static final String FILE_B = "B.txt";
 
+    protected static final String FILE_BINARY = "test.png";
+
     protected static String owner = UUID.randomUUID().toString();
 
+    protected int binarySize = -1;
+
+    protected byte[] binaryData = null;
+
     protected String testDataRoot;
 
     @AfterClass
@@ -66,12 +83,22 @@ public abstract class BaseApiClientTest
     @Before
     public void setUp() throws Exception
     {
-        testDataRoot = IOUtils.getPath(storageRoot, owner.toString());
+        testDataRoot = IOUtils.getPath(storageRoot, owner);
         IOUtils.createDirectories(testDataRoot);
         String testDataFile = IOUtils.getPath(testDataRoot, FILE_A);
         IOUtils.createFile(testDataFile);
         IOUtils.write(testDataFile, 0, DATA);
 
+        final String binaryTestDataFile = IOUtils.getPath(testDataRoot, FILE_BINARY);
+        final URL resource = getClass().getClassLoader().getResource("ch/ethz/sis/afsserver/client/test.png");
+        final java.io.File file = new java.io.File(resource.toURI());
+        this.binarySize = (int) file.length();
+        IOUtils.copy(resource.getPath(), binaryTestDataFile);
+
+        try (final FileInputStream fis = new FileInputStream(file)) {
+            binaryData = fis.readAllBytes();
+        }
+
         afsClient = new AfsClient(
                 new URI("http", null, "localhost", httpServerPort, httpServerPath, null, null));
     }
@@ -140,7 +167,7 @@ public abstract class BaseApiClientTest
         login();
 
         List<File> list = afsClient.list(owner, "", Boolean.TRUE);
-        assertEquals(1, list.size());
+        assertEquals(2, list.size());
         assertEquals(FILE_A, list.get(0).getName());
     }
 
@@ -153,6 +180,15 @@ public abstract class BaseApiClientTest
         assertArrayEquals(DATA, bytes);
     }
 
+    @Test
+    public void read_binaryFile() throws Exception
+    {
+        login();
+
+        byte[] bytes = afsClient.read(owner, FILE_BINARY, 0L, binarySize);
+        assertArrayEquals(binaryData, bytes);
+    }
+
     @Test
     public void resumeRead_getsDataFromTemporaryFile() throws Exception
     {
@@ -229,7 +265,7 @@ public abstract class BaseApiClientTest
         assertTrue(deleted);
 
         List<ch.ethz.sis.afs.api.dto.File> list = IOUtils.list(testDataRoot, true);
-        assertEquals(0, list.size());
+        assertEquals(1, list.size());
     }
 
     @Test
@@ -253,8 +289,8 @@ public abstract class BaseApiClientTest
         assertTrue(result);
 
         List<ch.ethz.sis.afs.api.dto.File> list = IOUtils.list(testDataRoot, true);
-        assertEquals(1, list.size());
-        assertEquals(FILE_B, list.get(0).getName());
+        assertEquals(2, list.size());
+        assertEquals(Set.of(FILE_B, FILE_BINARY), Set.of(list.get(0).getName(), list.get(1).getName()));
 
         byte[] testDataFile = IOUtils.readFully(IOUtils.getPath(testDataRoot, FILE_B));
         assertArrayEquals(DATA, testDataFile);
diff --git a/server-data-store/src/test/resources/ch/ethz/sis/afsserver/client/test.png b/server-data-store/src/test/resources/ch/ethz/sis/afsserver/client/test.png
new file mode 100644
index 0000000000000000000000000000000000000000..110674996771a7fd361b6364fe94472304556403
Binary files /dev/null and b/server-data-store/src/test/resources/ch/ethz/sis/afsserver/client/test.png differ
diff --git a/server-data-store/src/test/resources/test-server-config.properties b/server-data-store/src/test/resources/test-server-config.properties
index 430d16f423d418c474557cf5231498484c5a20a6..ae2c6d308127bd2ef5629d40e666f53c3addcdb7 100644
--- a/server-data-store/src/test/resources/test-server-config.properties
+++ b/server-data-store/src/test/resources/test-server-config.properties
@@ -29,7 +29,7 @@ httpServerPort=8085
 httpServerUri=/fileserver
 httpMaxContentLength=1024
 
-maxReadSizeInBytes=1024
+maxReadSizeInBytes=1048576
 authenticationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.DummyAuthenticationInfoProvider
 authorizationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.DummyAuthorizationInfoProvider
 poolSize=50
diff --git a/server-data-store/src/test/resources/test-server-with-auth-config.properties b/server-data-store/src/test/resources/test-server-with-auth-config.properties
index cd2e462ccfc3ab3131efe26e436d9b92b930d864..1ee88621d7027ed0ebe33e6e60aa3882fa75d79f 100644
--- a/server-data-store/src/test/resources/test-server-with-auth-config.properties
+++ b/server-data-store/src/test/resources/test-server-with-auth-config.properties
@@ -29,7 +29,7 @@ httpServerPort=8085
 httpServerUri=/fileserver
 httpMaxContentLength=1024
 
-maxReadSizeInBytes=1024
+maxReadSizeInBytes=1048576
 authenticationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.OpenBISAuthenticationInfoProvider
 authorizationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.OpenBISAuthorizationInfoProvider
 poolSize=50