@Override
  public FSDataOutputStream create(Path file, FsPermission permission,
      boolean overwrite, int bufferSize,
      short replication, long blockSize, Progressable progress)
    throws IOException {

    INode inode = store.retrieveINode(makeAbsolute(file));
    if (inode != null) {
      if (overwrite) {
        delete(file);
      } else {
        throw new IOException("File already exists: " + file);
      }
    } else {
      Path parent = file.getParent();
      if (parent != null) {
        if (!mkdirs(parent)) {
          throw new IOException("Mkdirs failed to create " + parent.toString());
        }
      }      
    }
    return new FSDataOutputStream
        (new S3OutputStream(getConf(), store, makeAbsolute(file),
                            blockSize, progress, bufferSize),
         statistics);
  }
@ Override public FSDataOutputStream create ( Path file , FsPermission permission , boolean overwrite , int bufferSize , short replication , long blockSize , Progressable progress ) throws IOException { INode inode = store . retrieveINode ( makeAbsolute ( file ) ) ; if ( inode != null ) { if ( overwrite ) { delete ( file ) ; } else { throw new IOException ( "File already exists: " + file ) ; } } else { Path parent = file . getParent ( ) ; if ( parent != null ) { if ( ! mkdirs ( parent ) ) { throw new IOException ( "Mkdirs failed to create " + parent . toString ( ) ) ; } } } return new FSDataOutputStream ( new S3OutputStream ( getConf ( ) , store , makeAbsolute ( file ) , blockSize , progress , bufferSize ) , statistics ) ; }
@param permission Currently ignored.