class B2LargeUploadWriteFeature implements MultipartWrite<VersionId> {

    @Override
    public StatusOutputStream<VersionId> write(final Path file, final TransferStatus status, final ConnectionCallback callback) {
        final LargeUploadOutputStream proxy = new LargeUploadOutputStream(file, status);
        return new HttpResponseOutputStream<VersionId>(new MemorySegementingOutputStream(proxy,
            PreferencesFactory.get().getInteger("b2.upload.largeobject.size.minimum"))) {
            @Override
            public VersionId getStatus() {
                return proxy.getFileId();
            }
        };
    }

    public  B2LargeUploadWriteFeature(final B2Session session, final B2FileidProvider fileid);
    public  B2LargeUploadWriteFeature(final B2Session session, final B2FileidProvider fileid, final Find finder, final AttributesFinder attributes);

}