ruby on rails爬坑(四):使用AWS S3存取数据
来源:互联网 发布:蒙古入侵日本知乎 编辑:程序博客网 时间:2024/05/16 14:39
一,前言
在上一篇博客ruby on rails爬坑(三):图片上传及显示中提到AWS S3,这篇博客将简单介绍如何在rails项目中使用AWS S3.
二,步骤
- 在亚马逊云服务中心开通配置AWS S3服务
在Gemfile中添加aws-sdk
gem 'aws-sdk', '~> 2'
在config/initializers文件夹下新建aws.rb(initializers文件夹下的内容在程序启动时会被自动调用),用于在全局初始化S3_BUCKET,一处配置,各处使用,内容如下:
region = "your region name"accessKeyID = "your keyID" secretKey = "your key"bucket = "your bucket name"Aws.config.update({ region: region, credentials: Aws::Credentials.new(accessKeyID, secretKey),})S3_BUCKET = Aws::S3::Resource.new.bucket(bucket)
上传测试: 尝试上传一首歌
#url:文件的本地路径def upload_mp3(url) md5 = Digest::MD5.hexdigest(url) file = Tempfile.new([md5, '.mp3']) file.binmode open(URI.parse(url)) do |data| file.write data.read end file.rewind key = "#{Time.now.strftime("%Y/%m%d")}/#{md5}.mp3" obj = S3_BUCKET.object("audio/#{key}") #使用之前配置好的S3_BUCKET obj.upload_file(file, { :content_type => "audio/mpeg", :cache_control => "max-age=604800", :acl => "public-read" }) return obj.public_url #返回S3中该文件的地址,供我们下载使用end
下载测试: region-name, bucket-name分别与上文配置的region, bucket对应,object-key与上文上传测试中指定的key对应。
s3 = Aws::S3::Client.new(region: 'region-name')resp = s3.get_object(bucket:'bucket-name', key:'object-key')resp.body#=> #<StringIO ...> resp.body.read#=> '...'
三,补充
两篇关于上传和下载的官方博客:
- Uploading Files to Amazon S3
- Downloading Objects from Amazon S3
至于S3更详细的内容,请查阅官方文档, 我正好用到上传下载,学得比较浅,有纰漏望指出。
0 0
- ruby on rails爬坑(四):使用AWS S3存取数据
- Ruby on Rails 学习(四)
- Ruby on Rails总结(四)
- Ruby on Rails总结(四)
- ruby on rails使用
- AWS CLI使用s3
- AWS S3的使用
- ruby on rails 使用TinyMCE
- Ruby on Rails 使用 Ajax
- Ruby on Rails 使用问题
- aws s3 (1)
- RoR(Ruby on Rails)????
- ruby on rails中创建xml数据
- 初次使用AWS S3服务
- 【Ruby】Ruby框架的使用(Ruby on Rails项目结构分析)
- Ruby on rails开发从头来(windows)(一)-使用InstantRails快速搭建Ruby On Rails开发环境
- Ruby on rails开发从头来(windows)(一)-使用InstantRails快速搭建Ruby On Rails开发环境
- 在Ruby on Rails中使用FCKeditor
- ZOJ-3207-80ers' Memory【6th浙江省赛】【STL】
- Bresenham 算法详解
- Servlet JSP
- 1. smarty 模板技术(1)
- iOS查看沙盒某文件夹下的文件
- ruby on rails爬坑(四):使用AWS S3存取数据
- POJ 2115 C Looooops 扩展gcd的应用 及其 gcd exgcd的讲解
- 7. Reverse Integer
- 【慕课笔记】第三章 JAVA中必须了解的常用类 第6节 使用Math类操作数据
- ZOJ-3210-A Stack or A Queue?【6th浙江省赛】
- 循环结构(do...while语句)
- Tuple、Array、Map与文件操作基础
- 【Android】安卓学习笔记之广播(四)使用本地广播
- 【锋利的jQuery】读书笔记