类: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 的流。
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 70 def 初始化(fs, ) @fs = fs @length = 0 @n = 0 @file_id = [:file_id] || BSON::ObjectId.new @options = .dup =begin WriteConcern 对象支持 if @options[:write_concern].is_a?(WriteConcern::Base) # 缓存实例,以便我们不会不必要地重建它。 @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =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。
36 37 38 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 36 def file_id @file_id end |
# filename ⇒ string (readonly)
返回 filename 正在上传的文件的名称。
41 42 43 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 41 def 文件名 @filename end |
# fs ⇒ FSBucket (只读)
返回 fs 该流写入的 fs 存储桶。
31 32 33 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 31 def fs @fs end |
# options ⇒哈希(只读)
返回 options 写入流选项。
46 47 48 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 46 def @options end |
实例方法详细信息
# abort ⇒ true
删除所有已插入的数据段,中止上传。
182 183 184 185 186 187 188 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 182 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
关闭写入流。
135 136 137 138 139 140 141 142 143 144 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 135 def 关闭 确保_open! update_length files_collection.insert_one( file_info, @options.合并(merge)(timeout_ms: @timeout_holder.剩余超时毫秒!) ) @open = false file_id end |
#已关闭? ⇒ true , false
流是否已关闭。
170 171 172 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 170 def 已关闭? !@open end |
# write (io) ⇒ Stream::Write
从流或string写入GridFS存储桶。
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 104 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)。
154 155 156 157 158 159 160 |
# File 'lib/ Mongo/grid/ 流/ 写入.rb', line 154 def write_concern @write_concern ||= if wco = @options[:write_concern] || @options[:write] writeConcern.获取(wco) else fs.write_concern end end |