类:Mongo::Grid::FSBucket::Stream::Write
- 继承:
-
对象
- 对象
- Mongo::Grid::FSBucket::Stream::Write
- 定义于:
- lib/ Mongo/grid/ 流/ 写入.rb
Overview
将文件写入 FSBucket 的流。
实例属性摘要折叠
-
# file_id ⇒ 对象
只读
File_id 正在上传的文件的 ID。
-
# filename ⇒ string
只读
文件名 正在上传的文件的名称。
-
#fs ⇒ FSBucket
只读
Fs 此流写入的 fs 存储桶。
-
# options ⇒ 哈希
只读
选项写入流选项。
实例方法摘要折叠
-
# abort ⇒ true
删除所有已插入的数据段,中止上传。
-
# close ⇒ BSON::ObjectId, Object
关闭写入流。
-
#已关闭? ⇒ true, false
流是否已关闭。
-
#initialize (fs, options) ⇒ 写入
构造函数
创建用于将文件写入 FSBucket 的流。
-
# write (io) ⇒ Stream::Write
从流或string写入GridFS存储桶。
-
# write_concern ⇒ Mongo::WriteConcern
获取上传时使用的写关注(write concern)。
构造函数详情
#initialize (fs, options) ⇒写入
创建用于将文件写入 FSBucket 的流。
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 67 def 初始化(fs, ) @fs = fs @length = 0 @n = 0 @file_id = [:file_id] || BSON::ObjectId.new @options = .dup # WriteConcern对象支持 # if @options[:write_concern].is_a?(WriteConcern::Base) # # 缓存实例,以便我们不会不必要地重建它。 # @write_concern = @options[:write_concern] # @options[:write_concern] = @write_concern.options # end @options.冻结 @filename = @options[:filename] @open = true @timeout_holder = CsotTimeoutHolder.new( operation_timeups: { operation_timeout_ms: [:timeout_ms], embedded_timeout_ms: fs.database.timeout_ms } ) end |
实例属性详细信息
# file_id ⇒对象(只读)
返回 file_id 正在上传的文件的 ID。
33 34 35 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 33 def file_id @file_id end |
# filename ⇒ string (readonly)
返回 filename 正在上传的文件的名称。
38 39 40 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 38 def 文件名 @filename end |
# fs ⇒ FSBucket (只读)
返回 fs 该流写入的 fs 存储桶。
28 29 30 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 28 def fs @fs end |
# options ⇒哈希(只读)
返回 options 写入流选项。
43 44 45 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 43 def @options end |
实例方法详细信息
# abort ⇒ true
删除所有已插入的数据段,中止上传。
178 179 180 181 182 183 184 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 178 def 中止 fs.chunks_collection.find( { files_id: file_id }, @options.合并(merge)(timeout_ms: @timeout_holder.剩余超时毫秒!) ).delete_many (@open = false) || true end |
# close ⇒ BSON::ObjectId , Object
关闭写入流。
131 132 133 134 135 136 137 138 139 140 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 131 def 关闭 确保_open! update_length files_collection.insert_one( file_info, @options.合并(merge)(timeout_ms: @timeout_holder.剩余超时毫秒!) ) @open = false file_id end |
#已关闭? ⇒ true , false
流是否已关闭。
166 167 168 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 166 def 已关闭? !@open end |
# write (io) ⇒ Stream::Write
从流或string写入GridFS存储桶。
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 100 def 写(io) 确保_open! @indexes ||= ensure_indexes! @length += if io.respond_to?(:bytesize) # string对象 io.bytesize else # IO 对象 io.size end 数据块 = file::数据块.拆分(io, file_info, @n) @n += 数据块.size 除非 数据块.空? chunks_collection.insert_many( 数据块, timeout_ms: @timeout_holder.剩余超时毫秒! ) end self end |
# write_concern ⇒ Mongo::WriteConcern
获取上传时使用的写关注(write concern)。
150 151 152 153 154 155 156 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 150 def write_concern @write_concern ||= if wco = @options[:write_concern] || @options[:write] writeConcern.获取(wco) else fs.write_concern end end |