开发者社区> 问答> 正文

对象存储 OSS4. 实现List buckets功能

已解决

展开
收起
游客5fjnxirepqeyg 2018-07-06 03:55:04 778 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    首先用rails生成管理Buckets的controller:

    1. rails g controller buckets index

    这样会在oss-manager中生成以下文件:

    • app/controller/buckets_controller.rb Buckets相关的逻辑代码
    • app/views/buckets/index.html.erb Buckets相关的展示代码
    • app/helpers/buckets_helper.rb 一些辅助函数

    首先编辑buckets_controller.rb,调用OSS Client,将list_buckets的结果存放在@buckets变量中:

    1. class BucketsController < ApplicationController
    2. def index
    3. @buckets = OSS.client.list_buckets
    4. end
    5. end

    然后编辑views/buckets/index.html.erb,将Bucket列表展示出来:

    1. <h1>Buckets</h1>
    2. <table class="table table-striped">
    3. <tr>
    4. <th>Name</th>
    5. <th>Location</th>
    6. <th>CreationTime</th>
    7. </tr>
    8. <% @buckets.each do |bucket| %>
    9. <tr>
    10. <td><%= link_to bucket.name, bucket_objects_path(bucket.name) %></td>
    11. <td><%= bucket.location %></td>
    12. <td><%= bucket.creation_time.localtime.to_s %></td>
    13. </tr>
    14. <% end %>
    15. </table>

    其中bucket_objects_path是一个辅助函数,在app/helpers/buckets_helper.rb中:

    1. module BucketsHelper
    2. def bucket_objects_path(bucket_name)
    3. "/buckets/#{bucket_name}/objects"
    4. end
    5. end

    这样就完成了列出所有Bucket的功能。在运行之前,我们还需要配置Rails的路由,使得我们在浏览器中输入的地址能够调用正确的逻辑。编辑config/routes.rb,增加一条:

    1. resources :buckets do
    2. resources :objects
    3. end

    好了,在oss-manager/下输入rails s以启动rails server,然后在浏览器中输入http://localhost:3000/buckets/就能看到Bucket列表了。

    最后保存一下代码:

    2018-07-10 12:35:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载