小编med*_*dik的帖子

永久设置rails控制台堆栈回溯限制

rails console默认情况下使用靴子context.back_trace_limit=16,只需键入即可将其更改为您想要的任何内容context.back_trace_limit=n.问题是每次启动时都必须输入它rails c.我在哪里context.back_trace_limit永久更改?有关轨道控制台配置的更多阅读表示赞赏

ruby-on-rails stack-trace backtrace rails-console

4
推荐指数
1
解决办法
868
查看次数

获取非过期的永久性s3对象URL

我的代码如下所示:

module Operations
  class UploadFileToS3 < MethodStruct.new(:params)
    def call
      s3 = Aws::S3::Resource.new(region: ENV['S3_REGION'])
      obj = s3.bucket(ENV['S3_BUCKET_NAME']).object(object_name)
      obj.upload_file(params[:tempfile_path],
                      content_type: params[:content_type],
                      acl: 'public-read')
      {
        url: obj.presigned_url(:get),
        # url: obj.public_url,
        filename: object_name
      }
    end

    private

    def object_name
      "#{params[:timestamp]}-#{params[:uuid]}#{params[:thumbname_suffix]}"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

对于所有上载的文件,将自动设置以下属性:

Expiry Date: None
Expiration Rule: N/A
Run Code Online (Sandbox Code Playgroud)

上传的对象Permissions包括:

Everyone: Open/Download
Run Code Online (Sandbox Code Playgroud)

铲斗Permissions包括:

Everyone: View Permissions
Run Code Online (Sandbox Code Playgroud)

值区政策如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<BUCKETNAME>/*"
        }
    ]
}    
Run Code Online (Sandbox Code Playgroud)

已注释掉obj.public_url将返回对象的裸链接(不附加查询字符串),该链接也将过期,然后呈现xml文件。直接从对象道具获取的裸链接也将过期,即使我手动添加到对象的Permissions …

ruby ruby-on-rails amazon-s3

3
推荐指数
1
解决办法
1713
查看次数