Classificação: Mongo::Grid::FSBucket
- Herda:
-
Objeto
- Objeto
- Mongo::Grid::FSBucket
- Estendido por:
- Encaminhável
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb,
build/ruby-driver-v2.19/lib/mongo/grid/stream.rb,
build/ruby-driver-v2.19/lib/mongo/grid/stream/read.rb,
build/ruby-driver-v2.19/lib/mongo/grid/stream/write.rb
Visão geral
Representa uma visualização do GridFS no banco de dados.
Definido sob namespace
Módulos: Fluxo
Colapsode resumo constante
- DEFAULT_ROOT =
O prefixo raiz padrão.
'fs'.congelar
- CUNKS_INDEX =
A especificação do índice da collection de chunks.
{ :files_id => 1, :n => 1 }.congelar
- FILES_INDEX =
A especificação do índice da coleção de arquivos.
{ nome do arquivo: 1, uploadDate: 1 }.congelar
Recolhimento do Resumo do atributo de instância
-
#chunks_collection ⇒ Collection
Somente leitura
Chunks_collection A collection de chunks.
-
#database ⇒ Database
Somente leitura
Database The database.
-
#files_collection ⇒ Collection
Somente leitura
Files_collection A collection de arquivos.
-
#opções ➤ Hash
Somente leitura
Opções As opções do FSBucket.
Recolhimento do Resumo do método de instância
-
#excluir(ID) ➤ Resultado
Remova um único arquivo, identificado por seu ID do GridFS.
-
#delete_one(file) ➤ Resultado
Remova um único arquivo do GridFS.
-
#download_to_stream(ID,io) ➤ Objeto
Baixa o conteúdo do arquivo especificado por ID e o grava no objeto io de destino.
-
#download_to_stream_by_name(filename, io, opts = {}) ➤ Object
Baixa o conteúdo do arquivo armazenado especificado pelo nome do arquivo e pela revisão nas opções e grava o conteúdo no objeto io de destino .
-
#find(selector = nil, options = {}) ➤ CollectionView
Encontre documentos de coleção de arquivos correspondentes a um determinado seletor.
-
#find_one(selector = nil) ➤ Grid::File
obsoleto
Obsoleto.
Em vez disso, use #find com um limite de -1. Será removido na versão 3.0.
-
#initialize(database, options = {}) ⇒ FSBucket
construtor
Crie o GridFS.
-
#insert_one(file) ⇒ BSON::ObjectId
obsoleto
Obsoleto.
Em vez disso, use #upload_from_stream ou #open_upload_stream. Será removido na versão 3.0.
-
#open_download_stream(ID, options = nil) {|The| ... } ➤ Stream::Leia
Abre um fluxo do qual um arquivo pode ser baixado, especificado por ID.
-
#open_download_stream_by_name(nome do arquivo, opções = {}) {|The| ... } ➤ Stream::Leia
Abre um fluxo do qual o aplicação pode ler o conteúdo do arquivo armazenado especificado pelo nome do arquivo e a revisão nas opções.
-
#open_upload_stream(filename, opts = {}) {|The| ... } ⇒ Stream::Write
Abre um fluxo de carregamento para o GridFS no qual o conteúdo de um arquivo ou blob pode ser gravado.
-
#prefixo ➤ string
Obtenha o prefixo do GridFS.
-
#read_preference ➤ BSON::Document
Obtenha a read preference.
-
#upload_from_stream(filename, io, opts = {}) ➤ BSON::ObjectId
Carrega um arquivo de usuário em um bucket GridFS .
-
#write_concern ➤ Mongo::WriteConcern
Obtenha a preocupação de gravação.
Detalhes do construtor
#initialize(database, options = {}) ⇒ FSBucket
Crie o GridFS.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 70 def inicializar(database, = {}) @database = database @opções = .dup =begin Suporte ao objeto WriteConcern se @options[:write_concern].is_a?(WriteConcern::Base) # Armazene a instância em cache para que não a reconstruamos desnecessariamente. @write_concern = @options[:write_concern] @options[:write_concern] = @write_concern.options end =end @opções.congelar @chunks_collection = database[chunks_name] @files_collection = database[file_name] end |
Detalhes do atributo da instância
#chunks_collection ➤ Collection (somente leitura)
Retorna chunks_collection A collection de chunks.
88 89 90 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 88 def chunks_collection @chunks_collection end |
#database ⇒ Database (readonly)
Retorna banco de dados O banco de dados.
93 94 95 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 93 def database @database end |
#arquivos_collection ➤ Coleção (somente leitura)
Retorna arquivos_coleção A coleção de arquivos.
98 99 100 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 98 def file_collection @files_collection end |
#opções ➤ Hash (somente leitura)
Retorna as opções As opções do FSBucket.
103 104 105 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 103 def @opções end |
Detalhes do método de instância
#excluir(ID) ➤ Resultado
Remova um único arquivo, identificado por seu ID do GridFS.
220 221 222 223 224 225 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 220 def excluir(id) Resultado = file_collection.find({ :_id => id }, @opções).delete_one chunks_collection.find({ :files_id => id }, @opções).delete_many aumentar Erro::FileNotFound.Novo(id, :id) se Resultado.n == 0 Resultado end |
#delete_one(file) ➤ Resultado
Remova um único arquivo do GridFS.
204 205 206 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 204 def delete_one(file) excluir(file.id) end |
#download_to_stream(ID,io) ➤ Objeto
Baixa o conteúdo do arquivo especificado por ID e o grava no objeto io de destino.
266 267 268 269 270 271 272 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 266 def download_to_stream(id, io) open_download_stream(id) fazer |fluxo| fluxo.cada fazer |chunk| io << chunk end end end |
#download_to_stream_by_name(filename, io, opts = {}) ➤ Object
Baixa o conteúdo do arquivo armazenado especificado pelo nome do arquivo e pela revisão nas opções e grava o conteúdo no objeto io de destino .
Os números de revisão são definidos da seguinte forma: 0 = o arquivo original armazenado 1 = a primeira revisão 2 = a segunda revisão etc. -2 = a segunda revisão mais recente -1 = a revisão mais recente
# @example Baixe o arquivo original.
fs.download_to_stream_by_name('some-file.txt', io, revision: 0)
359 360 361 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 359 def download_to_stream_by_name(Nome do Arquivo, io, opciona = {}) download_to_stream(open_download_stream_by_name(Nome do Arquivo, opciona).file_id, io) end |
#find(selector = nil, options = {}) ➤ CollectionView
Encontre documentos de coleção de arquivos correspondentes a um determinado seletor.
134 135 136 137 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 134 def find(seletor = nada, = {}) opciona = .mesclar(ler: read_preference) se read_preference file_collection.find(seletor, opciona || ) end |
#find_one(selector = nil) ➤ Grid::File
Em vez disso, use #find com um limite de -1. Será removido na versão 3.0.
Encontre um arquivo no GridFS.
155 156 157 158 159 160 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 155 def find_one(seletor = nada) file_info = file_collection.find(seletor).primeiro Método nada a menos que file_info Partes = chunks_collection.find(:files_id => file_info[:_id]).sort(:n => 1) Grade::arquivo.Novo(Partes.to_a, Opções::Mapeador.transformação, transformação(file_info, Grade::arquivo::informações::mapeamentos.inverter)) end |
#insert_one(file) ⇒ BSON::ObjectId
Em vez disso, use #upload_from_stream ou #open_upload_stream. Será removido na versão 3.0.
Insira um único arquivo no GridFS.
175 176 177 178 179 180 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 175 def insert_one(file) @indexes ||= ensure_indexes! chunks_collection.insert_many(file.Partes) file_collection.insert_one(file.informações) file.id end |
#open_download_stream(ID, options = nil) {|The| ... } ➤ Stream::Leia
Abre um fluxo do qual um arquivo pode ser baixado, especificado por ID.
243 244 245 246 247 248 249 250 251 252 253 254 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 243 def open_download_stream(id, = nada) = Utilidades.raso_symbolize_keys( || {}) read_stream(id, **).toque fazer |fluxo| se block_given? começar rendimento fluxo garantir fluxo.Fechar end end end end |
#open_download_stream_by_name(nome do arquivo, opções = {}) {|The| ... } ➤ Stream::Leia
Abre um fluxo do qual o aplicação pode ler o conteúdo do arquivo armazenado especificado pelo nome do arquivo e a revisão nas opções.
Os números de revisão são definidos da seguinte forma: 0 = o arquivo original armazenado 1 = a primeira revisão 2 = a segunda revisão etc. -2 = a segunda revisão mais recente -1 = a revisão mais recente
# @example Abra um fluxo para baixar o arquivo original.
fs.open_download_stream_by_name('some-file.txt', revision: 0)
308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 308 def open_download_stream_by_name(Nome do Arquivo, opciona = {}, &noum: bloco ; verb: bloquear) revisão = opciona.buscar(:revision, -1) se revisão < 0 ignorar = revisão.abs - 1 sort = { 'uploadDate' => mongo::Index::Descendente } mais ignorar = revisão sort = { 'uploadDate' => mongo::Index::Ascendente } end file_info_doc = file_collection.find({ nome do arquivo: Nome do Arquivo} , sort: sort, pular: ignorar, limit: -1).primeiro a menos que file_info_doc aumentar Erro::FileNotFound.Novo(Nome do Arquivo, :filename) a menos que opciona[:revision] aumentar Erro::InvalidFileRevision.Novo(Nome do Arquivo, opciona[:revision]) end open_download_stream(file_info_doc[:_id], file_info_doc: file_info_doc, &noum: bloco ; verb: bloquear) end |
#open_upload_stream(filename, opts = {}) {|The| ... } ⇒ Stream::Write
Abre um fluxo de carregamento para o GridFS no qual o conteúdo de um arquivo ou blob pode ser gravado.
389 390 391 392 393 394 395 396 397 398 399 400 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 389 def open_upload_stream(Nome do Arquivo, opciona = {}) opciona = Utilidades.raso_symbolize_keys(opciona) write_stream(Nome do Arquivo, **opciona).toque fazer |fluxo| se block_given? começar rendimento fluxo garantir fluxo.Fechar end end end end |
#prefixo ➤ string
Obter o prefixo do GridFS
190 191 192 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 190 def prefix @opções[:fs_name] || @opções[:bucket_name] || DEFAULT_ROOT end |
#read_preference ➤ BSON::Document
Esse método sempre retorna uma instância BSON::Document, mesmo que o construtor FSBucket especifique o tipo de :read como um Hash, não como um BSON::Document.
Obtenha a read preference.
460 461 462 463 464 465 466 467 468 469 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 460 def read_preference @read_preference ||= começar pref = [:read] || database.read_preference se BSON::Documento === pref pref mais BSON::Documento.Novo(pref) end end end |
#upload_from_stream(filename, io, opts = {}) ⇒ BSON::ObjectId
Carrega um arquivo de usuário em um bucket GridFS . Lê o conteúdo do arquivo do usuário a partir do fluxo de origem e o carrega como blocos na coleção de blocos. Depois que todos os chunks tiverem sido carregados, ele criará um documento de coleção de arquivos para o nome do arquivo na coleção de arquivos.
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 430 def upload_from_stream(Nome do Arquivo, io, opciona = {}) open_upload_stream(Nome do Arquivo, opciona) fazer |fluxo| começar fluxo.escrever(io) # IOError e SystemCallError são para erros ao ler o io. # Erro::SocketError e Erro::SocketTimeoutError são para # escrita no MongoDB. salvar IOError, SystemCallError, Erro::Erro de soquete, Erro::SocketTimeoutError começar fluxo.abortar salvar Erro::Falha de operação end aumentar end end.file_id end |
#write_concern ➤ Mongo::WriteConcern
Obtenha a preocupação de gravação.
479 480 481 482 483 484 485 |
# File 'build/ruby-driver-v2.19/lib/mongo/grid/fs_bucket.rb', linha 479 def write_concern @write_concern ||= se wco = @opções[:write_concern] || @opções[:write] Escreva preocupação.obter(wco) mais database.write_concern end end |