通过heroku应用层后,回形针不会将图像保存到S3

时间:2012-10-10 06:38:34

标签: ios ruby heroku amazon-s3 paperclip

我知道有很多问题涉及上述主题。但是当我通过Heroku iOS rails教程(https://devcenter.heroku.com/articles/ios-photo-sharing-geo-location-service#deploy-to-heroku)将我的应用程序截图上传到s3时,我从heroku获得成功PUT:

2012-10-10T06:28:39 + 00:00 app [web.1]:开始发布“/ photos”163.120.70.10于2012-10-10 06:28:39 +0000 2012-10-10T06:28:39 + 00:00 app [web.1]:由PhotosController处理#create为JSON 2012-10-10T06:28:39 + 00:00 app [web.1]:参数:{“photo”=> {“所有者”=>“f93a107d8795c73d085cab1fbbb9ff2c”,“image”=>#>} } 2012-10-10T06:28:39 + 00:00 app [web.1]:[paperclip]保存附件。

看来该记录已经进入了pregresql表,它具有:

{ “照片”:[{ “created_at”: “2012-10-10T02:39:28Z”, “ID”:1, “image_content_type”:NULL, “映像文件名”:NULL, “IMAGE_FILE_SIZE”:空, “image_updated_at”:NULL, “所有者”: “f93a107d8795c73d085cab1fbbb9ff2c”, “的updated_at”: “2012-10-10T02:39:28Z”},{ “created_at”: “2012-10-10T02:49:23Z”,“ID “:2”,image_content_type “:NULL,” 映像文件名 “:NULL,” IMAGE_FILE_SIZE “:NULL,” image_updated_at “:NULL,” 所有者 “:” f93a107d8795c73d085cab1fbbb9ff2c “ ”的updated_at“:” 2012-10-10T02:49:23Z “},{” created_at “:” 2012-10-10T05:07:01Z”, “ID”:3 “image_content_type”:NULL, “映像文件名”:NULL, “IMAGE_FILE_SIZE”:NULL, “image_updated_at”:空, “所有者”: “f93a107d8795c73d085cab1fbbb9ff2c”, “的updated_at”: “2012-10-10T05:07:01Z”},{ “created_at”: “2012-10-10T05:26:55Z”, “ID”:4“,image_content_type “:NULL,” 映像文件名 “:NULL,” IMAGE_FILE_SIZE “:NULL,” image_updated_at “:NULL,” 所有者 “:” f93a107d8795c73d085cab1fbbb9ff2c “ ”的updated_at“: ”2012-10-10T05:26:55Z“},{” created_at “:” 2012-10-10T05:31:37Z “ ”ID“:5 ”image_content_type“:NULL, ”映像文件名“:NULL,” image_file_s IZE “:NULL,” image_updated_at “:NULL,” 所有者 “:” f93a107d8795c73d085cab1fbbb9ff2c “ ”的updated_at“: ”2012-10-10T05:31:37Z“},{ ”created_at“:” 2012-10-10T05:50: 16Z “ ”ID“:6, ”image_content_type“:NULL, ”映像文件名“:NULL, ”IMAGE_FILE_SIZE“:NULL, ”image_updated_at“:NULL, ”所有者“: ”f93a107d8795c73d085cab1fbbb9ff2c“, ”的updated_at“:” 2012-10- 10T05:50:16Z “},{” created_at “:” 2012-10-10T06:07:54Z “ ”ID“:7, ”image_content_type“:NULL, ”映像文件名“:NULL, ”IMAGE_FILE_SIZE“:NULL,” image_updated_at “:NULL,” 所有者 “:” f93a107d8795c73d085cab1fbbb9ff2c”, “的updated_at”: “2012-10-10T06:07:54Z”},{ “created_at”: “2012-10-10T06:10:19Z”, “ID” :8中, “image_content_type”:NULL, “映像文件名”:NULL, “IMAGE_FILE_SIZE”:NULL, “image_updated_at”:NULL, “所有者”: “f93a107d8795c73d085cab1fbbb9ff2c”, “的updated_at”: “2012-10-10T06:10:19Z” },{ “created_at”: “2012-10-10T06:17:00Z”, “ID”:9 “image_content_type”:NULL, “映像文件名”:NULL, “IMAGE_FILE_SIZE”:NULL, “image_updated_at”:NULL,”所有者 “:” f93a107d8795c73d085cab1fbbb9ff2c “ ”的updated_at“: ”2012-10-10T06:17:00Z“},{” CREA ted_at “:” 2012-10-10T06:19:24Z “ ”标识“:10 ”image_content_type“:NULL, ”映像文件名“:NULL, ”IMAGE_FILE_SIZE“:NULL, ”image_updated_at“:NULL, ”所有者“:” f93a107d8795c73d085cab1fbbb9ff2c “ ”的updated_at“: ”2012-10-10T06:19:24Z“},{ ”created_at“: ”2012-10-10T06:19:34Z“, ”ID“:11 ”image_content_type“:NULL,”映像文件名 “:NULL,” IMAGE_FILE_SIZE “:NULL,” image_updated_at “:NULL,” 所有者 “:” f93a107d8795c73d085cab1fbbb9ff2c “ ”的updated_at“: ”2012-10-10T06:19:34Z“},{ ”created_at“:” 2012- 10-10T06:28:16Z”, “ID”:12, “image_content_type”:NULL, “映像文件名”:NULL, “IMAGE_FILE_SIZE”:NULL, “image_updated_at”:NULL, “所有者”: “f93a107d8795c73d085cab1fbbb9ff2c”, “的updated_at” : “2012-10-10T06:28:16Z”},{ “created_at”: “2012-10-10T06:28:39Z”, “ID”:13, “image_content_type”:NULL, “映像文件名”:NULL,” image_file_size“:null,”image_updated_at“:null,”owner“:”f93a107d8795c73d085cab1fbbb9ff2c“,”updated_at“:”2012-10-10T06:28:39Z“}]} michael-blums-macbook-pro:cloudglyph-server

正如您所看到的,这是很多测试上传。但是,唉,不是他们击中了s3桶,并且在heroku日志中没有迹象表明它是否曾经进入过S3。为了清楚起见,我没有诸如AWS凭证错误之类的错误。起初,我使用的IAM用户对我的s3存储桶只有读/写访问权限,然后切换到我的主要凭据。

我的heroku服务器是设置为开发设置的单个主机,我的所有aws凭据都存储在.env中,如上面链接的教程中所示。

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

找到它。它有点像陷阱。在rails中,您需要明确指定回形针的记录,以便成功写入和读取它。

将以下内容添加到模型文件中:

    attr_accessible :yourRecord

在我的情况下,yourRecord是根据上面的json转储的图像。此外,我还从heroku教程中删除了版本,因为Paperclip已经进入了v 3.xx