Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从S3存储桶向Soundcloud发布音频?_Ruby On Rails_Amazon S3_Soundcloud_Open Uri - Fatal编程技术网

Ruby on rails 从S3存储桶向Soundcloud发布音频?

Ruby on rails 从S3存储桶向Soundcloud发布音频?,ruby-on-rails,amazon-s3,soundcloud,open-uri,Ruby On Rails,Amazon S3,Soundcloud,Open Uri,我成功地遵循了Soundcloud的API文档,但遇到了一个让我陷入困境的错误 当使用他们的软件上传/发布文件时,我在本地计算机上硬编码文件时不会遇到任何问题。我真正想做的是传输存储在S3上的文件。此操作一直失败,出现Errno::enoint-没有此类文件或目录错误。开放URI包括在内,我通过硬编码另一台服务器上可供公众使用的文件对其进行了测试,但仍然失败。因此,我觉得S3或我的generate_secure_S3_url没有问题,因为我在其他地方成功地使用了generate_secure_S

我成功地遵循了Soundcloud的API文档,但遇到了一个让我陷入困境的错误

当使用他们的软件上传/发布文件时,我在本地计算机上硬编码文件时不会遇到任何问题。我真正想做的是传输存储在S3上的文件。此操作一直失败,出现Errno::enoint-没有此类文件或目录错误。开放URI包括在内,我通过硬编码另一台服务器上可供公众使用的文件对其进行了测试,但仍然失败。因此,我觉得S3或我的generate_secure_S3_url没有问题,因为我在其他地方成功地使用了generate_secure_S3_url

我的代码如下,有人能帮忙吗

def product_tracks_to_soundcloud(access_token)
  require 'soundcloud'
  require 'open-uri'
  # create a client object with access token
  client = Soundcloud.new(:access_token => access_token)

    self.producttracklistings.each do |pt|
        filebase = URI.encode(pt.track.track_file_name, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
        fileurl = generate_secure_s3_url(filebase)
        # upload an audio file
    track = client.post('/tracks', :track => {
      :title => pt.track.name,
      :asset_data => File.new(fileurl, 'rb')
    })
    end

好吧,我自己设法弄明白了这一点,这很简单,令人恼火。首先,在上面的任何一点上,我都没有真正调用openuri。一旦我使用了它,那就只是一个例子:

:asset_data => File.new(fileurl, 'rb')
为此:

:asset_data => open(fileurl)

我希望这对其他人有帮助。

好的,我自己设法解决了这个问题,但这很简单,令人恼火。首先,在上面的任何一点上,我都没有真正调用openuri。一旦我使用了它,那就只是一个例子:

:asset_data => File.new(fileurl, 'rb')
为此:

:asset_data => open(fileurl)
我希望这对其他人有帮助