0

新的 V1.0.2 具有将附件上传到 domino 文档的新功能。只要我使用文件 <= 48KB,我的上传代码就会成功。一旦我尝试上传一个更大的文件,就会上传,在 domino 文档中我找到了一个大小合适的附件 - 但文件已损坏!

这是我的代码(对应于较大文件的 appdev pack 文档中的示例代码):

for (var x = 0; x < files["tskFile"].length; x++) {          
          let sFilename = files["tskFile"][x].originalname;         
          let sPath = files["tskFile"][x].path;
          let buffer = fs.readFileSync(sPath);
          const writable = await db.bulkCreateAttachmentStream({});
          writable.on('error', e => {
            // An error occurred and the stream is closed
            console.error("Error on write ", e)
          });
          writable.on('response', response => {
            // The attachment content was written to the document and a
            // response has arrived from the server
            console.log(">> File " + sFilename + " saved to doc ")
          });
          let error;         
          // Write the image in n chunks
          let offset = 0;
          const writeRemaining = () => {
            if (error) {
              return;
            }
            let draining = true;
            while (offset < buffer.length && draining) {
              const remainingBytes = buffer.length - offset;
              let chunkSize = 16 * 1024;
              if (remainingBytes < chunkSize) {
                chunkSize = remainingBytes;
              }                            
              const chunk = new Uint8Array(
                buffer.slice(offset, offset + chunkSize),
              );
              draining = writable.write(chunk);              
              offset += chunkSize;
            }

            if (offset < buffer.length) {
              // Buffer is not draining. Write some more once it drains.              
              writable.once('drain', writeRemaining);
            } else {
              writable.end();                           
            }
          };          
          writable.file({
            unid: unid,
            fileName: sFilename,
          });
          writeRemaining();
        } // end forall attachments

这是我的服务器的 notes.ini 变量:

PROTON_MAX_WRITE_ATTACHMENT_MB=30, 
PROTON_MAX_ATTACHMENT_CHUNK_KB=50, 
PROTON_MIN_ATTACHMENT_CHUNK_KB=8

我在 AppDevPack 中的错误或错误?有人尝试过这个新功能吗?

4

2 回答 2

0

我们找到了一个修复程序,它将包含在我们的下一个版本中。感谢您的报告!

于 2019-10-08T14:34:21.993 回答
0

我能够在 64 位 Windows 上重现与 Proton 类似的问题。我无法在 Linux 上运行 Proton 进行复制。我使用的客户端代码与您不同,但我 99% 确定这是 Proton 中的一个仅限 Windows 的错误。当我们有更多信息时,我们会更新这个答案。同时,你能在 Linux 上试用 Proton 吗?

于 2019-09-30T19:54:15.960 回答