【问题标题】:How can I use fog to edit a file on s3?如何使用雾在 s3 上编辑文件?
【发布时间】:2011-11-21 09:15:34
【问题描述】:

我在 s3 上有一堆文件。我用 .fog 配置文件设置了雾,所以我可以启动 fog 并得到提示。如果我知道文件的路径,现在如何访问和编辑 s3 上的文件?

【问题讨论】:

    标签: ruby amazon-s3 fog


    【解决方案1】:

    最简单的做法可能是使用 IRB 或 PRY 来获取文件的本地副本,或者编写一个简单的脚本来下载、编辑然后重新上传它。假设您有一个名为 data.txt 的文件。

    您可以使用以下脚本来初始化与 S3 的连接。

    require 'fog'
    
    connection = Fog::Storage.new({
      :provider                 => 'AWS',
      :aws_secret_access_key    => YOUR_SECRET_ACCESS_KEY,
      :aws_access_key_id        => YOUR_SECRET_ACCESS_KEY_ID
    })
    
    directory = connection.directories.get("all-my-data")
    

    然后使用目录对象在本地文件系统上获取文件的副本。

    local_file = File.open("/path/to/my/data.txt", "w")
    file = directory.files.get('data.txt')
    local_file.write(file.body)
    local_file.close
    

    使用您喜欢的编辑器编辑文件,然后再次将其上传到 S3。

    file = directory.files.get('data.txt')
    file.body = File.open("/path/to/my/data.txt")
    file.save
    

    【讨论】:

    • 我想有一种方法可以在不重新上传文件的情况下更改文件的属性,不是吗?无论如何-您提供的内容为我提供了实验所需的雾环境(在他们的文档中很难找到)。谢谢!
    • 我相信你可以在不重新上传文件的情况下设置标题信息。您可以在documentation 或浏览source code 找到更多信息。
    猜你喜欢
    • 2011-05-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多