Tag: rails activestorage

如何在保持原始文件夹结构的同时使用Activestorage上载文件夹

我正在寻找一种使用activestup使用其direct_uploadfunction上传整个文件夹的方法,但是我无法在rails端检索文件的相对路径(webkitRelativePath),这样我就可以在S3或本地磁盘上创建完全相同的结构。 这是我正在使用的代码 任何帮助/建议非常感谢。

ActiveStorage大文件上传会触发Google :: Execution :: Expired

在工作中实现ActiveStorage时,我们发现在上传12GB大文件时,操作会持续大约10分钟而且我收到错误Google::Execution::Expired或者有时HTTPClient::SendTimeoutError: execution expired 。 我正在使用这样的行运行大多数上传: backup.file.attach(io: File.open(“/my/file/path.ext”), filename: “myfilename”) 有没有办法让请求持续更长时间或一种方法来循环这个超时。 到目前为止,这种策略在上传4GB时运行良好。 只是当我过度使用文件大小时才发生这种情况。 时间不是我们这方面的问题,因为这是Cron工作的夜间任务。

Rails使用活动存储读取csv文件数据

我有这个课程,我正在使用主动存储 class MaterialsUpload < ApplicationRecord has_one_attached :csv_file end 这是附件 #<ActiveStorage::Attached::One:0x007ff1f0be9e90 @dependent=:purge_later, @name="csv_file", @record= #> 有没有办法可以读取数据,所以我可以做这样的事情 string = materials_upload.csv_file.read CSV.parse(csv_string, headers: true) do |row| # do something end

如何使用ActiveStorage在上传到云之前压缩图像

为了节省云中的空间,您将如何使用activestorage调整图像预上载的大小和压缩?

Rails ActiveStorage错误 – MessageVerifier-InvalidSignature

我正在开发一个需要ActiveStorage has_many_attached :photos的项目has_many_attached :photos Location模型上的has_many_attached :photos情况。 我在下面设置了代码,但在尝试上传表单时,收到以下错误: ActiveSupport::MessageVerifier::InvalidSignature in LocationsController#attach_photo 这是将文件“添加”到特定父记录的附件集(即: Location记录)的方法吗? Location模型 class Location < ApplicationRecord … has_many_attached :photos … end 地点控制器 class LocationsController < ApplicationController … def attach_photo @location = Location.find(params[:id]) @location.photos.attach(params[:photo]) redirect_to location_path(@location) end … end 视图 视图 resources :locations do member do post :attach_photo end end

获取磁盘上ActiveStorage文件的路径

我需要获取使用ActiveStorage磁盘上的文件的路径。 该文件存储在本地。 当我使用paperclip时,我在附件上使用path方法返回完整路径。 例: user.avatar.path 在查看Active Storage Docs时 ,看起来rails_blob_path可以解决问题。 在查看它返回的内容之后,它不提供文档的路径。 因此,它返回此错误: 没有这样的文件或目录@ rb_sysopen – 背景 我需要文档的路径,因为我使用的是combine_pdf gem,以便将多个pdf组合成单个pdf。 对于回形针实现,我遍历所选pdf附件的full_path并将它们load到组合的pdf中: attachment_paths.each {|att_path| report << CombinePDF.load(att_path)}

ActiveStorage上传大型base64编码的字符串?

如果我有一个在客户端上使用JavaScript编辑/生成的图像(例如,裁剪的照片或canvas图的结果),有没有办法使用ActiveStorage上传它? 它通常是一个包含””的大字符串,它存储在JavaScript变量中,而不是文件中。

Active Storage Rails的Blob错误5.2

我刚刚升级了5.1.4。 应用程序到5.2,我正在尝试将Paperclip替换为ActiveStorage。 在尝试使用图像更新现有记录时,我收到以下错误: 无法自动加载常量ActiveStorage :: Blob :: Analyzable,预期/Users/Simon/.rvm/gems/ruby-2.4.0/gems/activestorage-5.2.0/app/models/active_storage/blob/analyzable.rb来定义它 在我的模型中: has_one_attached :pic 在我的控制器中: … def update respond_to do |format| if @gin.update(gin_params) format.html { redirect_to @gin, notice: ‘Gin was successfully updated.’ } format.json { render :show, status: :ok, location: @gin } else format.html { render :edit } format.json { render json: @gin.errors, status: :unprocessable_entity } end end […]

如何在rails中使用ActiveStorage正确进行模型测试?

我刚刚转向在rails 5.1.4上使用ActiveStorage而且我是TDD的新手并且正在努力弄清楚如何测试has_one_attached :avatar的模型has_one_attached :avatar require ‘rails_helper’ RSpec.describe User, :type => :model do let (:valid_user) { FactoryBot.build(:user) } describe “Upload avatar” do context “with a valid image” do it “saves the image” do valid_user.save! saved_file = valid_user.avatar.attach(io: File.open(“/home/ubuntu/workspace/spec/fixtures/files/avatar.jpg”), filename: “face.jpg”, content_type: “image/jpg”) expect(saved_file).to be_an_instance_of(ActiveStorage::Attachment::One) end end end end 但我收到以下错误: Failures: 1) User Upload avatar with a […]

如何使用rails active storage从url保存图像?

我正在寻找使用rails 5.2活动存储保存位于另一个http Web服务器上的文件(在本例中为图像)。 我有一个带有源URL的字符串参数的对象。 然后在before_save上我想抓取远程图像并保存。 示例:图像的URL http://www.example.com/image.jpg 。 require ‘open-uri’ class User < ApplicationRecord has_one_attached :avatar before_save :grab_image def grab_image #this indicates what I want to do but doesn't work downloaded_image = open("http://www.example.com/image.jpg") self.avatar.attach(downloaded_image) end end 在此先感谢您的任何建议。