Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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/2/ssis/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 Rails:社交共享图像无法显示-图像托管在Amazon AWS S3上_Ruby On Rails_Facebook_Ruby On Rails 4_Amazon Web Services_Amazon S3 - Fatal编程技术网

Ruby on rails Rails:社交共享图像无法显示-图像托管在Amazon AWS S3上

Ruby on rails Rails:社交共享图像无法显示-图像托管在Amazon AWS S3上,ruby-on-rails,facebook,ruby-on-rails-4,amazon-web-services,amazon-s3,Ruby On Rails,Facebook,Ruby On Rails 4,Amazon Web Services,Amazon S3,我在Facebook上看到一张空白的共享照片时遇到了问题 我正在使用的应用程序可以在此处找到: 此应用程序允许您的订阅者使用基于通过社交页面共享的推荐链接注册的朋友数的推荐代码接收奖品 默认情况下,此应用程序使用回形针上载图像以用于本地存储。 上传的资产将存储在public/settings/…中。。。 因为我使用的是Heroku,所以我决定为AWS S3配置回形针 控制器: 每当我从管理控制台设置上传Facebook共享照片时,我的Rails日志中将显示以下内容: [AWS S3 404 0

我在Facebook上看到一张空白的共享照片时遇到了问题

我正在使用的应用程序可以在此处找到:

此应用程序允许您的订阅者使用基于通过社交页面共享的推荐链接注册的朋友数的推荐代码接收奖品

默认情况下,此应用程序使用回形针上载图像以用于本地存储。 上传的资产将存储在public/settings/…中。。。 因为我使用的是Heroku,所以我决定为AWS S3配置回形针

控制器:

每当我从管理控制台设置上传Facebook共享照片时,我的Rails日志中将显示以下内容:

[AWS S3 404 0.059285 0 retries] head_object(:bucket_name=>"MY_BUCKET_NAME",:key=>"settings/facebook_images/000/000/001/original/fb_cover.jpg") AWS::S3::Errors::NoSuchKey No Such Key
当我查看AWS控制台时,文件确实已上载到上述路径:
settings/facebook\u images/000/000/001/original/fb\u cover.jpg

如果我要输入一个要订阅的电子邮件地址,选择Facebook共享按钮,我将被重定向到Facebook页面上的共享,但是应该共享的图像是空白的。空白图像应该是上传到我的AWS S3.

的图像。

每当我点击Facebook社交共享图标时,下面的日志就会显示出来

2015-12-21T15:10:01.920124+00:00 app[web.1]: Started GET "/https://s3.amazonaws.com/[MY_BUCKET_NAME]/settings/facebook_images/000/000/001/original/fb_cover.jpg?1450673098" for [MY.IP.ADDRESS.HERE] at 2015-12-21 15:10:01 +0000
2015-12-21T15:10:01.922540+00:00 app[web.1]: 
2015-12-21T15:10:01.922544+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/https:/s3.amazonaws.com/[MY_BUCKET_NAME]/settings/facebook_images/000/000/001/original/fb_cover.jpg"):
以下是我的配置:

Gemfile(代码段)
gem“aws sdk”,“<2.0”
gem‘引导式sass’
gem“延迟工作活动记录”
宝石“设计”
gem“字体很棒的rails”
宝石长臂猿
宝石“哈姆轨道”
gem'jqueryrails'
宝石“回形针”
gem“rails\u 12factor”,集团::生产

环境/生产。rb:
config.serve\u static\u files=ENV['RAILS\u serve\u static\u files']。是否存在?

路线:

如果我不使用AWS S3,而是使用应用程序Paperclip local storage defaults,Facebook上的分享就会显示得很好。使用AWS的原因是Heroku不能很好地处理上传的媒体


请知道,我确实可以选择上传背景图像,在应用程序上显示良好。只是我在将Facebook社交共享图像显示在Facebook页面的共享上时遇到问题。

您共享的URL显示了什么?Facebook是否能够正确查看与您共享的URL关联的元标记和图像?当我输入URL时,我收到的
Facebook URL无法被此调试器删除。试试你自己的。
。请知道,如果我使用
回形针
本地存储默认设置,Facebook共享图像显示在我的FB页面上就可以了。如果我使用AWS S3设置,它不会。此外,AWS S3还可以上传照片,并且相应地设置了查看/下载权限以供公众查看。
2015-12-21T15:10:01.920124+00:00 app[web.1]: Started GET "/https://s3.amazonaws.com/[MY_BUCKET_NAME]/settings/facebook_images/000/000/001/original/fb_cover.jpg?1450673098" for [MY.IP.ADDRESS.HERE] at 2015-12-21 15:10:01 +0000
2015-12-21T15:10:01.922540+00:00 app[web.1]: 
2015-12-21T15:10:01.922544+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/https:/s3.amazonaws.com/[MY_BUCKET_NAME]/settings/facebook_images/000/000/001/original/fb_cover.jpg"):
Rails.application.routes.draw do
  devise_for :admins
  resources :prizes, except: :show
  resources :settings, only: [:create, :update, :index]

  resources :users, only: [:index, :create, :show, :destroy] do
    resources :shares, only: [] do
      collection do 
        get "/" => "shares#create"
      end
    end
  end

  root "users#new"
  get "privacy" => "pages#privacy"

end