Skip to content

Uploaded files are empty with uploadFromStream #60

@benschlegel

Description

@benschlegel

I'm trying to upload a file using client.uploadFromStream by doing something like this:

if (exists(currPath) && isFile(currPath)) {
  const fileStream = createReadStream(currPath)
  .on('data', (chunk) => {
    // logging for stream progress here
  })

  // Upload file from stream
  await client.uploadFromStream(`${nextcloud_path}/${fileName}`, fileStream);
}

This does not throw an error and creates a file at the correct location on nextcloud, but the file is 0 Bytes/empty. If I write out the stream to a buffer, it correctly reads the data.

If i use client.put instead, everything works as expected, but then you lose the benefits of using the stream in the first place. Changing the example to the following works as expected and writes the actual content to the file on nextcloud.

if (exists(currPath) && isFile(currPath)) {
  // Stream for reading in file
  const bufs = [];
  const fileStream = createReadStream(currPath)
    .on('data', (chunk) => {
      bufs.push(chunk);
    })
    .on('end', async () => {
      const fileBuffer = Buffer.concat(bufs);
      await client.put(`${nextcloud_path}/${fileName}`, fileBuffer);
    }); 
}

This leads me to believe that uploadFromStream is not working as I would expect it to.

I have docker set up through TrueNAS, I don't think upload limits are the problem
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions