ruby-on-rails - ruby 使用 open-URI 从 S3 读取文件

标签 ruby-on-rails ruby id3 open-uri ruby-on-rails-3

我在从 S3 读取文件时遇到一些问题。我希望能够远程加载 ID3 标签,但使用 open-URI 不起作用,它会给我以下错误:

ruby-1.8.7-p302 > c=TagLib2::File.new(open(URI.parse("http://recordtemple.com.s3.amazonaws.com/music/745/original/The%20Stranger.mp3?1292096514")))
TypeError: can't convert Tempfile into String
    from (irb):8:in `initialize'
    from (irb):8:in `new'
    from (irb):8

但是,如果我下载相同的文件并将其放在我的桌面上(即不需要 open-URI),它就可以正常工作。

c=TagLib2::File.new("/Users/momofwombie/Desktop/blah.mp3")

我还应该做些什么来读取远程文件吗?

更新:我刚刚找到这个链接,这可能会解释一点,但肯定有一些方法可以做到这一点......

Read header data from files on remote server

最佳答案

可能想查看 AWS::S3 , 用于亚马逊简单存储服务的 Ruby 库

为文件执行 AWS::S3:S3Object.find,然后使用 about 检索元数据

此解决方案假定您拥有 AWS 凭证和访问包含相关文件的 S3 存储桶的权限。

关于ruby-on-rails - ruby 使用 open-URI 从 S3 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422956/

相关文章:

exif - 是什么导致某些 EXIF 标签不可写?

ruby-on-rails - 数据库 "db/development.sqlite3"不存在 - 如何修复?

javascript - 在 HTML 中传递 javascript 选项

ruby-on-rails - Ruby 多重哈希总结

ruby - 在没有 DBI 的情况下将 Ruby 连接到 MSSQL 服务器

javascript - Ajaxified 星级评分系统未正确更新

ruby-on-rails - 下划线在 Rails 标题中转换为连字符?

ruby-on-rails - 保存使用 RMagick 使用 Rails 和 CarrierWave 创建的图像

python - eyed3 for python - 如何从音频文件加载选择性 id3 数据?

python - 如何使用 Python 读取 MP3 中的 ID3 标签?