Создайте ресурс CKAN в RoR, предоставив содержимое файла как строку

Как создать ресурс CKAN в RoR, предоставляя строку с содержимым файла?

Это кажется рабочим решением командной строки (если я сохраню файл в файловой системе):

curl -H 'Authorization: ' 'https://demo.ckan.org/api/action/resource_create' --form [email protected] --form package_id=

Учитывая, что у меня есть содержимое файла CSV в виде строки, как я могу загрузить его на сайт CKAN?

Вот код, который у меня есть сейчас, создается ресурс, но его содержимое кажется пустым.

    http_client = HTTPClient.new

    temp_file = Tempfile.open('csv_export_tmp_file')
    temp_file.write(resource_content)

    body = {
      name: ,
      title: ,
      package_id: ,
      description: ,
      created: ,
      upload: temp_file,
      mimetype: 'text/csv',
      resource_type: 'file',
      format: 'csv'
    }
    response = http_client.post(resource_create_url, body, [['Authorization', api_key], ['Content-Type', 'multipart/form-data']])

    temp_file.close
    temp_file.unlink
0
de

1 ответы

Это решение, которое я в конечном итоге использовал

    resource_create_url = 'ckan_site_url.com/api/action/resource_create'

    http_client = HTTPClient.new

    extended_string_io = Class.new(StringIO) do
      def path
        'data.csv'
      end
    end

    virtual_file = extended_string_io.new("my, csv, file, content\n1,2,3,4")

    body = {
      name: ,
      title: ,
      package_id: ,
      description: ,
      created: ,
      upload: virtual_file,
      resource_type: 'file',
      format: 'csv'
    }
    response = http_client.post(resource_create_url, body, [['Authorization', api_key]])
0
добавлено
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков

Rails Chat
Rails Chat
87 участник(ов)

You are welcome to discuss Ruby On Rails development process and other stuff