【发布时间】:2016-04-29 07:21:25
【问题描述】:
我有一个正在开发的音乐平台,我使用carrierwave 和fog 将曲目上传到S3 存储桶。
我想在临时文件上传之前访问它。我注意到当我将文件发送到控制器时,当我在控制台中执行 @track.file.inspect 时,我得到以下信息:
#<AudioUploader:0x007fa46d07bb60 @model=#<Track id: nil, artist_id: 1, title: "Not Alone", file: nil, created_at:
nil, updated_at: nil, track_cover: nil, public: false, like_facebook: nil, share_facebook: false, follow_twitter: nil, share_t
witter: false, follow_instagram: nil, shazam_track: nil, about_track: "", lyrics: "", credits: "", price: #<BigDecimal:7fa4767
d2f18,'0.0',9(18)>, name_your_price: false>, @mounted_as=:file, @cache_id="1461881968-11098-8389", @filename="Not_Alone_Lyrics
_-_RED_-_Until_We_Have_Faces.mp3", @original_filename="Not_Alone_Lyrics_-_RED_-_Until_We_Have_Faces.mp3", @file=#<CarrierWave:
:SanitizedFile:0x007fa46d079658 @file="/Users/*****/Desktop/projects/*****/public/uploads/tmp/1461881968-11098-8389/Not_
Alone_Lyrics_-_RED_-_Until_We_Have_Faces.mp3", @original_filename=nil, @content_type="audio/mp3">, @versions={}>
Completed 500 Internal Server Error in 643ms (ActiveRecord: 496.1ms)
如何访问字符串:
/Users/*****/Desktop/projects/*****/public/uploads/tmp/1461881968-11098-8389/Not_
Alone_Lyrics_-_RED_-_Until_We_Have_Faces.mp3
【问题讨论】:
-
那么你需要一个长路径到一个临时文件吗?
-
没错,是的。
-
我不记得了:打开
pry并尝试:@track.file.path,@track.file.filepath,您也可以查看cw的方法:@track.file.methods -
谢谢你会试试的!我找到的解决方法是这样的
audio = @track.file,然后再次audio = audio.file,然后再次访问我想要的audio.file。它以这种方式工作,但它很尴尬 -
最终是的,但并不意味着我的方式是正确的做事方式,我看不出我的其他问题有什么问题,如果不是为了我,它可能会帮助其他人未来。
标签: ruby-on-rails ruby ruby-on-rails-4 amazon-s3