Search in sources :

Example 6 with InputStreamBuilder

use of io.vertigo.dynamo.file.model.InputStreamBuilder in project vertigo by KleeGroup.

the class FileManagerTest method testCreateTempFileWithNoFileNoMime.

@Test
public void testCreateTempFileWithNoFileNoMime() {
    final String fileName = "monTestFile.txt";
    final Instant lastModified = Instant.now();
    final long length = 123;
    final InputStreamBuilder inputStreamBuilder = new InputStreamBuilder() {

        @Override
        public InputStream createInputStream() {
            return new StringBufferInputStream("Contenu test");
        }
    };
    final VFile vFile = fileManager.createFile(fileName, lastModified, length, inputStreamBuilder);
    checkVFile(vFile, fileName, lastModified, "text/plain", length);
}
Also used : StringBufferInputStream(java.io.StringBufferInputStream) InputStreamBuilder(io.vertigo.dynamo.file.model.InputStreamBuilder) Instant(java.time.Instant) VFile(io.vertigo.dynamo.file.model.VFile) Test(org.junit.Test)

Example 7 with InputStreamBuilder

use of io.vertigo.dynamo.file.model.InputStreamBuilder in project vertigo by KleeGroup.

the class FileManagerImpl method createFile.

/**
 * {@inheritDoc}
 */
@Override
public VFile createFile(final String fileName, final String typeMime, final URL resourceUrl) {
    final long length;
    final Instant lastModified;
    try {
        final URLConnection connection = resourceUrl.openConnection();
        try {
            length = connection.getContentLength();
            lastModified = Instant.ofEpochMilli(connection.getLastModified());
        } finally {
            connection.getInputStream().close();
        }
    } catch (final IOException e) {
        throw WrappedException.wrap(e, "Can't get file meta from url");
    }
    Assertion.checkArgument(length >= 0, "Can't get file meta from url");
    final InputStreamBuilder inputStreamBuilder = resourceUrl::openStream;
    return createFile(fileName, typeMime, lastModified, length, inputStreamBuilder);
}
Also used : InputStreamBuilder(io.vertigo.dynamo.file.model.InputStreamBuilder) Instant(java.time.Instant) IOException(java.io.IOException) URLConnection(java.net.URLConnection)

Aggregations

InputStreamBuilder (io.vertigo.dynamo.file.model.InputStreamBuilder)7 Instant (java.time.Instant)7 VFile (io.vertigo.dynamo.file.model.VFile)6 Entity (io.vertigo.dynamo.domain.model.Entity)3 DtObject (io.vertigo.dynamo.domain.model.DtObject)2 FileInfoURI (io.vertigo.dynamo.domain.model.FileInfoURI)2 URI (io.vertigo.dynamo.domain.model.URI)2 DataStream (io.vertigo.lang.DataStream)2 File (java.io.File)2 IOException (java.io.IOException)2 StringBufferInputStream (java.io.StringBufferInputStream)2 Test (org.junit.Test)2 FileInfo (io.vertigo.dynamo.file.model.FileInfo)1 URLConnection (java.net.URLConnection)1 Path (java.nio.file.Path)1