Ich lade Inhalte auf ein gehostetes CMS hoch. Sie bieten einen Ruby-Edelstein, mit dem ich viele Inhalte programmatisch hochladen kann. Ich konnte meine Inhalte hochladen, indem ich eines ihrer Skripte bearbeitete, aber ich konnte das Skript nicht dazu bringen, meine Datei mit dem Upload zu versehen. Dies ist das Skript, das ich erfolgreich bin mit:Ruby-Skripts zusammenfügen
#!/usr/bin/env ruby -rubygems
require File.join(File.dirname(__FILE__), 'authentication')
require "csv" # faster_csv (ruby 1.9)
lines = CSV.read(File.join(File.dirname(__FILE__), 'karaoke.csv')) # Exported an Excel file as CSV
lines.slice!(0) # remove header line
collection = StorageRoom::Collection.find('my collection ID')
Song = collection.entry_class
lines.each do |row|
karaoke = Song.new(:artist => row[0], :song => row[1], :genre => row[2])
if karaoke.save
puts "Misuero Karaoke Latino saved: #{karaoke.artist}, #{karaoke.song}, #{karaoke.genre} "
else
puts "Misuero Karaoke Latino could not be saved: #{karaoke.errors.join(', ')}"
end
end
Dies ist das Skript, wie pro ihrem Beispiel, das würde den Datei-Upload tun:
#!/usr/bin/env ruby -rubygems
require File.join(File.dirname(__FILE__), 'authentication')
path = ::File.expand_path(File.join(File.dirname(__FILE__) + '..', 'spec', 'fixtures', 'image.png'))
collection = StorageRoom::Collection.find('my collection ID')
# Upload File
entry = collection.entry_class.new(:name => "StorageRoom Logo", :file => StorageRoom::File.new_with_filename(path))
if entry.save
puts "Entry saved (#{entry[:@url]})"
puts "URL of the uploaded file is #{entry.image.url}"
puts "URL of the automatically generated thumbnail is #{entry.image.url(:thumbnail)}" # Multiple Image Versions can be specified in the interface
else
puts "Entry could not be saved: #{entry.errors.join(', ')}"
end
Ich mag beide Skripte mischen, damit ich nur laufen eine, aber ich kann nicht den Datei-Upload-Teil überhaupt funktionieren. Ich versuche ein .mov hochzuladen. Wo sollten die Dateien in Bezug auf das Skript stehen? Wie kann ich es so machen, dass sie richtig benannt werden? Wie würde ich das Skript so bearbeiten, dass es mehrere Dateien enthält? Und wie kann ich die Skripte zusammenführen?
Sweet. Was bedeutet die Spezifikation Fixtures Teil? – hanleyhansen
Ich versuchte dies http://pastebin.com/Rb3Asm2v, aber ich bekomme einen Fehler, der sagt: import_csv.rb: 22: Syntaxfehler, unerwartetes Keyword_end, erwartet ')' Keine Ahnung, was das bedeutet. – hanleyhansen
'your_rails_root/spec/fixtures/image.png' ist ein Beispielbild, das zum Testen verwendet wird. Sieht aus, als hätten Sie einen Tippfehler in Zeile 15, was bedeutet, dass Ihre Dateinamenszeichenfolge nicht geschlossen ist. Probieren Sie '... StorageRoom :: File.new_with_filename (" # {karaoke.artist} # {karaoke.song} .mov "))'. – RobinGower