2

画像をRedmineに一括アップロードし、それぞれを特定の wiki ページにリンクしようとしています。

ドキュメント ( Rest_apiRuby で REST API を使用する) にはいくつかの側面が記載されていますが、例はさまざまな点で失敗しています。また、ソースからアイデアを導き出そうとしましたが、成功しませんでした。

Ruby内から画像をアップロードしてリンクする方法を示す短い例を誰か提供できますか?

4

1 に答える 1

3

添付ファイルと 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
  }
})
于 2013-10-20T20:40:23.190 に答える