@Override
 public void setBlobAccess(String container, String name, BlobAccess access) {
   Path path = new File(buildPathStartingFromBaseDir(container, name)).toPath();
   if (isWindows()) {
     try {
       if (access == BlobAccess.PRIVATE) {
         setPrivate(path);
       } else {
         setPublic(path);
       }
     } catch (IOException e) {
       throw new RuntimeException(e);
     }
   } else {
     Set<PosixFilePermission> permissions;
     try {
       permissions = getPosixFilePermissions(path);
       if (access == BlobAccess.PRIVATE) {
         permissions.remove(PosixFilePermission.OTHERS_READ);
       } else if (access == BlobAccess.PUBLIC_READ) {
         permissions.add(PosixFilePermission.OTHERS_READ);
       }
       setPosixFilePermissions(path, permissions);
     } catch (IOException ioe) {
       throw Throwables.propagate(ioe);
     }
   }
 }