【问题标题】:How can I upload files to Redmine via ActiveResource / REST API?如何通过 ActiveResource / REST API 将文件上传到 Redmine?
【发布时间】:2013-10-19 20:59:37
【问题描述】:

我正在尝试将图像批量上传到 Redmine 并将它们各自链接到特定的 wiki 页面。

文档(Rest_apiUsing the REST API with Ruby)提到了一些方面,但示例以各种方式失败。我还尝试从source 中获得想法——但没有成功。

谁能提供一个简短的示例来说明如何从 Ruby 中上传和链接图像?

【问题讨论】:

    标签: ruby rest file-upload redmine activeresource


    【解决方案1】:

    这有点棘手,因为附件和 wiki API 都相对较新,但我过去做过类似的事情。这是使用rest-client 的最小工作示例:

    require 'rest_client'
    require 'json'
    
    key = '5daf2e447336bad7ed3993a6ebde8310ffa263bf'
    upload_url = "http://localhost:3000/uploads.json?key=#{key}"
    wiki_url = "http://localhost:3000/projects/some_project/wiki/some_wiki.json?key=#{key}"
    img = File.new('/some/image.png')
    
    # First we upload the image to get attachment token
    response = RestClient.post(upload_url, img, {
      :multipart => true,
      :content_type => 'application/octet-stream'
    })
    token = JSON.parse(response)['upload']['token']
    
    # Redmine will throw validation errors if you do not
    # send a wiki content when attaching the image. So
    # we just get the current content and send that
    wiki_text = JSON.parse(RestClient.get(wiki_url))['wiki_page']['text']
    
    response = RestClient.put(wiki_url, {
      :attachments => {
        :attachment1 => { # the hash key gets thrown away - name doesn't matter
          :token => token,
          :filename => 'image.png',
          :description => 'Awesome!' # optional
        }
      },
      :wiki_page => {
        :text => wiki_text # original wiki text
      }
    })
    

    【讨论】:

    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多