go mod vendor
+ move k8s.io/apimachinery fork from go.work to go.mod (and include it in vendor)
This commit is contained in:
329
vendor/go.mongodb.org/mongo-driver/mongo/options/gridfsoptions.go
generated
vendored
Normal file
329
vendor/go.mongodb.org/mongo-driver/mongo/options/gridfsoptions.go
generated
vendored
Normal file
@@ -0,0 +1,329 @@
|
||||
// Copyright (C) MongoDB, Inc. 2017-present.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
// not use this file except in compliance with the License. You may obtain
|
||||
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
package options
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/bson/bsoncodec"
|
||||
"go.mongodb.org/mongo-driver/mongo/readconcern"
|
||||
"go.mongodb.org/mongo-driver/mongo/readpref"
|
||||
"go.mongodb.org/mongo-driver/mongo/writeconcern"
|
||||
)
|
||||
|
||||
// DefaultName is the default name for a GridFS bucket.
|
||||
var DefaultName = "fs"
|
||||
|
||||
// DefaultChunkSize is the default size of each file chunk in bytes (255 KiB).
|
||||
var DefaultChunkSize int32 = 255 * 1024
|
||||
|
||||
// DefaultRevision is the default revision number for a download by name operation.
|
||||
var DefaultRevision int32 = -1
|
||||
|
||||
// BucketOptions represents options that can be used to configure GridFS bucket.
|
||||
type BucketOptions struct {
|
||||
// The name of the bucket. The default value is "fs".
|
||||
Name *string
|
||||
|
||||
// The number of bytes in each chunk in the bucket. The default value is 255 KiB.
|
||||
ChunkSizeBytes *int32
|
||||
|
||||
// The write concern for the bucket. The default value is the write concern of the database from which the bucket
|
||||
// is created.
|
||||
WriteConcern *writeconcern.WriteConcern
|
||||
|
||||
// The read concern for the bucket. The default value is the read concern of the database from which the bucket
|
||||
// is created.
|
||||
ReadConcern *readconcern.ReadConcern
|
||||
|
||||
// The read preference for the bucket. The default value is the read preference of the database from which the
|
||||
// bucket is created.
|
||||
ReadPreference *readpref.ReadPref
|
||||
}
|
||||
|
||||
// GridFSBucket creates a new BucketOptions instance.
|
||||
func GridFSBucket() *BucketOptions {
|
||||
return &BucketOptions{
|
||||
Name: &DefaultName,
|
||||
ChunkSizeBytes: &DefaultChunkSize,
|
||||
}
|
||||
}
|
||||
|
||||
// SetName sets the value for the Name field.
|
||||
func (b *BucketOptions) SetName(name string) *BucketOptions {
|
||||
b.Name = &name
|
||||
return b
|
||||
}
|
||||
|
||||
// SetChunkSizeBytes sets the value for the ChunkSize field.
|
||||
func (b *BucketOptions) SetChunkSizeBytes(i int32) *BucketOptions {
|
||||
b.ChunkSizeBytes = &i
|
||||
return b
|
||||
}
|
||||
|
||||
// SetWriteConcern sets the value for the WriteConcern field.
|
||||
func (b *BucketOptions) SetWriteConcern(wc *writeconcern.WriteConcern) *BucketOptions {
|
||||
b.WriteConcern = wc
|
||||
return b
|
||||
}
|
||||
|
||||
// SetReadConcern sets the value for the ReadConcern field.
|
||||
func (b *BucketOptions) SetReadConcern(rc *readconcern.ReadConcern) *BucketOptions {
|
||||
b.ReadConcern = rc
|
||||
return b
|
||||
}
|
||||
|
||||
// SetReadPreference sets the value for the ReadPreference field.
|
||||
func (b *BucketOptions) SetReadPreference(rp *readpref.ReadPref) *BucketOptions {
|
||||
b.ReadPreference = rp
|
||||
return b
|
||||
}
|
||||
|
||||
// MergeBucketOptions combines the given BucketOptions instances into a single BucketOptions in a last-one-wins fashion.
|
||||
func MergeBucketOptions(opts ...*BucketOptions) *BucketOptions {
|
||||
b := GridFSBucket()
|
||||
|
||||
for _, opt := range opts {
|
||||
if opt == nil {
|
||||
continue
|
||||
}
|
||||
if opt.Name != nil {
|
||||
b.Name = opt.Name
|
||||
}
|
||||
if opt.ChunkSizeBytes != nil {
|
||||
b.ChunkSizeBytes = opt.ChunkSizeBytes
|
||||
}
|
||||
if opt.WriteConcern != nil {
|
||||
b.WriteConcern = opt.WriteConcern
|
||||
}
|
||||
if opt.ReadConcern != nil {
|
||||
b.ReadConcern = opt.ReadConcern
|
||||
}
|
||||
if opt.ReadPreference != nil {
|
||||
b.ReadPreference = opt.ReadPreference
|
||||
}
|
||||
}
|
||||
|
||||
return b
|
||||
}
|
||||
|
||||
// UploadOptions represents options that can be used to configure a GridFS upload operation.
|
||||
type UploadOptions struct {
|
||||
// The number of bytes in each chunk in the bucket. The default value is DefaultChunkSize (255 KiB).
|
||||
ChunkSizeBytes *int32
|
||||
|
||||
// Additional application data that will be stored in the "metadata" field of the document in the files collection.
|
||||
// The default value is nil, which means that the document in the files collection will not contain a "metadata"
|
||||
// field.
|
||||
Metadata interface{}
|
||||
|
||||
// The BSON registry to use for converting filters to BSON documents. The default value is bson.DefaultRegistry.
|
||||
Registry *bsoncodec.Registry
|
||||
}
|
||||
|
||||
// GridFSUpload creates a new UploadOptions instance.
|
||||
func GridFSUpload() *UploadOptions {
|
||||
return &UploadOptions{Registry: bson.DefaultRegistry}
|
||||
}
|
||||
|
||||
// SetChunkSizeBytes sets the value for the ChunkSize field.
|
||||
func (u *UploadOptions) SetChunkSizeBytes(i int32) *UploadOptions {
|
||||
u.ChunkSizeBytes = &i
|
||||
return u
|
||||
}
|
||||
|
||||
// SetMetadata sets the value for the Metadata field.
|
||||
func (u *UploadOptions) SetMetadata(doc interface{}) *UploadOptions {
|
||||
u.Metadata = doc
|
||||
return u
|
||||
}
|
||||
|
||||
// MergeUploadOptions combines the given UploadOptions instances into a single UploadOptions in a last-one-wins fashion.
|
||||
func MergeUploadOptions(opts ...*UploadOptions) *UploadOptions {
|
||||
u := GridFSUpload()
|
||||
|
||||
for _, opt := range opts {
|
||||
if opt == nil {
|
||||
continue
|
||||
}
|
||||
if opt.ChunkSizeBytes != nil {
|
||||
u.ChunkSizeBytes = opt.ChunkSizeBytes
|
||||
}
|
||||
if opt.Metadata != nil {
|
||||
u.Metadata = opt.Metadata
|
||||
}
|
||||
if opt.Registry != nil {
|
||||
u.Registry = opt.Registry
|
||||
}
|
||||
}
|
||||
|
||||
return u
|
||||
}
|
||||
|
||||
// NameOptions represents options that can be used to configure a GridFS DownloadByName operation.
|
||||
type NameOptions struct {
|
||||
// Specifies the revision of the file to retrieve. Revision numbers are defined as follows:
|
||||
//
|
||||
// * 0 = the original stored file
|
||||
// * 1 = the first revision
|
||||
// * 2 = the second revision
|
||||
// * etc..
|
||||
// * -2 = the second most recent revision
|
||||
// * -1 = the most recent revision.
|
||||
//
|
||||
// The default value is -1
|
||||
Revision *int32
|
||||
}
|
||||
|
||||
// GridFSName creates a new NameOptions instance.
|
||||
func GridFSName() *NameOptions {
|
||||
return &NameOptions{}
|
||||
}
|
||||
|
||||
// SetRevision sets the value for the Revision field.
|
||||
func (n *NameOptions) SetRevision(r int32) *NameOptions {
|
||||
n.Revision = &r
|
||||
return n
|
||||
}
|
||||
|
||||
// MergeNameOptions combines the given NameOptions instances into a single *NameOptions in a last-one-wins fashion.
|
||||
func MergeNameOptions(opts ...*NameOptions) *NameOptions {
|
||||
n := GridFSName()
|
||||
n.Revision = &DefaultRevision
|
||||
|
||||
for _, opt := range opts {
|
||||
if opt == nil {
|
||||
continue
|
||||
}
|
||||
if opt.Revision != nil {
|
||||
n.Revision = opt.Revision
|
||||
}
|
||||
}
|
||||
|
||||
return n
|
||||
}
|
||||
|
||||
// GridFSFindOptions represents options that can be used to configure a GridFS Find operation.
|
||||
type GridFSFindOptions struct {
|
||||
// If true, the server can write temporary data to disk while executing the find operation. The default value
|
||||
// is false. This option is only valid for MongoDB versions >= 4.4. For previous server versions, the server will
|
||||
// return an error if this option is used.
|
||||
AllowDiskUse *bool
|
||||
|
||||
// The maximum number of documents to be included in each batch returned by the server.
|
||||
BatchSize *int32
|
||||
|
||||
// The maximum number of documents to return. The default value is 0, which means that all documents matching the
|
||||
// filter will be returned. A negative limit specifies that the resulting documents should be returned in a single
|
||||
// batch. The default value is 0.
|
||||
Limit *int32
|
||||
|
||||
// The maximum amount of time that the query can run on the server. The default value is nil, meaning that there
|
||||
// is no time limit for query execution.
|
||||
//
|
||||
// NOTE(benjirewis): MaxTime will be deprecated in a future release. The more general Timeout option may be used
|
||||
// in its place to control the amount of time that a single operation can run before returning an error. MaxTime
|
||||
// is ignored if Timeout is set on the client.
|
||||
MaxTime *time.Duration
|
||||
|
||||
// If true, the cursor created by the operation will not timeout after a period of inactivity. The default value
|
||||
// is false.
|
||||
NoCursorTimeout *bool
|
||||
|
||||
// The number of documents to skip before adding documents to the result. The default value is 0.
|
||||
Skip *int32
|
||||
|
||||
// A document specifying the order in which documents should be returned. The driver will return an error if the
|
||||
// sort parameter is a multi-key map.
|
||||
Sort interface{}
|
||||
}
|
||||
|
||||
// GridFSFind creates a new GridFSFindOptions instance.
|
||||
func GridFSFind() *GridFSFindOptions {
|
||||
return &GridFSFindOptions{}
|
||||
}
|
||||
|
||||
// SetAllowDiskUse sets the value for the AllowDiskUse field.
|
||||
func (f *GridFSFindOptions) SetAllowDiskUse(b bool) *GridFSFindOptions {
|
||||
f.AllowDiskUse = &b
|
||||
return f
|
||||
}
|
||||
|
||||
// SetBatchSize sets the value for the BatchSize field.
|
||||
func (f *GridFSFindOptions) SetBatchSize(i int32) *GridFSFindOptions {
|
||||
f.BatchSize = &i
|
||||
return f
|
||||
}
|
||||
|
||||
// SetLimit sets the value for the Limit field.
|
||||
func (f *GridFSFindOptions) SetLimit(i int32) *GridFSFindOptions {
|
||||
f.Limit = &i
|
||||
return f
|
||||
}
|
||||
|
||||
// SetMaxTime sets the value for the MaxTime field.
|
||||
//
|
||||
// NOTE(benjirewis): MaxTime will be deprecated in a future release. The more general Timeout
|
||||
// option may be used in its place to control the amount of time that a single operation can
|
||||
// run before returning an error. MaxTime is ignored if Timeout is set on the client.
|
||||
func (f *GridFSFindOptions) SetMaxTime(d time.Duration) *GridFSFindOptions {
|
||||
f.MaxTime = &d
|
||||
return f
|
||||
}
|
||||
|
||||
// SetNoCursorTimeout sets the value for the NoCursorTimeout field.
|
||||
func (f *GridFSFindOptions) SetNoCursorTimeout(b bool) *GridFSFindOptions {
|
||||
f.NoCursorTimeout = &b
|
||||
return f
|
||||
}
|
||||
|
||||
// SetSkip sets the value for the Skip field.
|
||||
func (f *GridFSFindOptions) SetSkip(i int32) *GridFSFindOptions {
|
||||
f.Skip = &i
|
||||
return f
|
||||
}
|
||||
|
||||
// SetSort sets the value for the Sort field.
|
||||
func (f *GridFSFindOptions) SetSort(sort interface{}) *GridFSFindOptions {
|
||||
f.Sort = sort
|
||||
return f
|
||||
}
|
||||
|
||||
// MergeGridFSFindOptions combines the given GridFSFindOptions instances into a single GridFSFindOptions in a
|
||||
// last-one-wins fashion.
|
||||
func MergeGridFSFindOptions(opts ...*GridFSFindOptions) *GridFSFindOptions {
|
||||
fo := GridFSFind()
|
||||
for _, opt := range opts {
|
||||
if opt == nil {
|
||||
continue
|
||||
}
|
||||
if opt.AllowDiskUse != nil {
|
||||
fo.AllowDiskUse = opt.AllowDiskUse
|
||||
}
|
||||
if opt.BatchSize != nil {
|
||||
fo.BatchSize = opt.BatchSize
|
||||
}
|
||||
if opt.Limit != nil {
|
||||
fo.Limit = opt.Limit
|
||||
}
|
||||
if opt.MaxTime != nil {
|
||||
fo.MaxTime = opt.MaxTime
|
||||
}
|
||||
if opt.NoCursorTimeout != nil {
|
||||
fo.NoCursorTimeout = opt.NoCursorTimeout
|
||||
}
|
||||
if opt.Skip != nil {
|
||||
fo.Skip = opt.Skip
|
||||
}
|
||||
if opt.Sort != nil {
|
||||
fo.Sort = opt.Sort
|
||||
}
|
||||
}
|
||||
|
||||
return fo
|
||||
}
|
||||
Reference in New Issue
Block a user