【问题标题】:Sending attachment file via http post request通过 http post 请求发送附件文件
【发布时间】:2021-04-17 17:56:05
【问题描述】:

我正在尝试将附件文件从 youtrack 发送到另一个系统(在此示例中为 trello),而不使用图像 url 但其内容

我无法在 youtrack 中将其作为图片 url 发送,因为我的系统已关闭,只有拥有 vpn 的用户才能访问。

问题在于从工作流中的附件内容中读取 inputStream。我完全不知道该怎么做,youtrack 文档也没有接触过它(就我的研究而言)

代码:(截断不重要的部分)

//...

exports.rule = entities.Issue.onChange({
  //...
  action: function(ctx) {
    //...
    var link = '/1/cards/' + issue['trelloIssueId'] + '/attachments';

    issue.comments.added.forEach(function(comment) {
      comment.attachments.forEach(function(attachment) {        
        var response = connection.postSync(link, {
          name: attachment.name,
          file: attachment.content,
          mimeType: attachment.mimeType
        });

        //...
      });
    });
  },
  requirements: {}
});

从这里我得到了错误:

TypeError: invokeMember (forEach) on jetbrains.youtrack.workflow.sandbox.InputStreamWrapper@677a561f failed due to: Unknown identifier: forEach

我必须如何准备内容才能使用 postSync 方法发送?

【问题讨论】:

    标签: inputstream youtrack


    【解决方案1】:

    看起来您尝试迭代 issue.comments.added 而循环应该在 issue.comments 上执行,因为问题的 cmets Set 没有 added 键,根据以下文档页面建议:https://www.jetbrains.com/help/youtrack/devportal/v1-Issue.html

    如果可行,请告诉我。

    【讨论】:

    • 嗯。这不是我的问题。我正在迭代评论,我可以得到他们的内容。我只对添加的评论感兴趣,所以我不会多次发送附件。我的问题是通过 http 发送附件文件内容,因为我不知道如何在 javascript 中准备 InputStream
    • 请接受我的混乱道歉。您能否澄清一下您是尝试遍历问题的所有现有 cmets 还是仅在当前工作流规则执行期间添加的 cmets?
    • 只有那些被添加的。我刚刚收到this issue 已解决的更新。我只需要等待发布,它会解决我的问题
    • 但如果您有其他解决方案,我会很高兴听到。
    • 如果最初提到的错误不再是这种情况,我们必须等到所述功能将在下一个版本中发布
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2011-08-15
    • 2017-05-17
    相关资源
    最近更新 更多