mirror of https://github.com/minio/minio.git
				
				
				
			
		
			
				
	
	
		
			114 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Go
		
	
	
	
/*
 | 
						|
 * MinIO Cloud Storage, (C) 2016-2020 MinIO, Inc.
 | 
						|
 *
 | 
						|
 * 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
 | 
						|
 *
 | 
						|
 * Unless required by applicable law or agreed to in writing, software
 | 
						|
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 * See the License for the specific language governing permissions and
 | 
						|
 * limitations under the License.
 | 
						|
 */
 | 
						|
 | 
						|
package cmd
 | 
						|
 | 
						|
import (
 | 
						|
	"os"
 | 
						|
	"time"
 | 
						|
)
 | 
						|
 | 
						|
// VolInfo - represents volume stat information.
 | 
						|
type VolInfo struct {
 | 
						|
	// Name of the volume.
 | 
						|
	Name string
 | 
						|
 | 
						|
	// Date and time when the volume was created.
 | 
						|
	Created time.Time
 | 
						|
}
 | 
						|
 | 
						|
// FilesInfo represent a list of files, additionally
 | 
						|
// indicates if the list is last.
 | 
						|
type FilesInfo struct {
 | 
						|
	Files       []FileInfo
 | 
						|
	IsTruncated bool
 | 
						|
}
 | 
						|
 | 
						|
// FilesInfoVersions represents a list of file versions,
 | 
						|
// additionally indicates if the list is last.
 | 
						|
type FilesInfoVersions struct {
 | 
						|
	FilesVersions []FileInfoVersions
 | 
						|
	IsTruncated   bool
 | 
						|
}
 | 
						|
 | 
						|
// FileInfoVersions represent a list of versions for a given file.
 | 
						|
type FileInfoVersions struct {
 | 
						|
	// Name of the volume.
 | 
						|
	Volume string
 | 
						|
 | 
						|
	// Name of the file.
 | 
						|
	Name string
 | 
						|
 | 
						|
	// Represents the latest mod time of the
 | 
						|
	// latest version.
 | 
						|
	LatestModTime time.Time
 | 
						|
 | 
						|
	Versions []FileInfo
 | 
						|
}
 | 
						|
 | 
						|
// FileInfo - represents file stat information.
 | 
						|
type FileInfo struct {
 | 
						|
	// Name of the volume.
 | 
						|
	Volume string
 | 
						|
 | 
						|
	// Name of the file.
 | 
						|
	Name string
 | 
						|
 | 
						|
	// Version of the file.
 | 
						|
	VersionID string
 | 
						|
 | 
						|
	// Indicates if the version is the latest
 | 
						|
	IsLatest bool
 | 
						|
 | 
						|
	// Deleted is set when this FileInfo represents
 | 
						|
	// a deleted marker for a versioned bucket.
 | 
						|
	Deleted bool
 | 
						|
 | 
						|
	// DataDir of the file
 | 
						|
	DataDir string
 | 
						|
 | 
						|
	// Date and time when the file was last modified, if Deleted
 | 
						|
	// is 'true' this value represents when while was deleted.
 | 
						|
	ModTime time.Time
 | 
						|
 | 
						|
	// Total file size.
 | 
						|
	Size int64
 | 
						|
 | 
						|
	// File mode bits.
 | 
						|
	Mode os.FileMode
 | 
						|
 | 
						|
	// File metadata
 | 
						|
	Metadata map[string]string
 | 
						|
 | 
						|
	// All the parts per object.
 | 
						|
	Parts []ObjectPartInfo
 | 
						|
 | 
						|
	// Erasure info for all objects.
 | 
						|
	Erasure ErasureInfo
 | 
						|
}
 | 
						|
 | 
						|
// newFileInfo - initializes new FileInfo, allocates a fresh erasure info.
 | 
						|
func newFileInfo(object string, dataBlocks, parityBlocks int) (fi FileInfo) {
 | 
						|
	fi.Erasure = ErasureInfo{
 | 
						|
		Algorithm:    erasureAlgorithm,
 | 
						|
		DataBlocks:   dataBlocks,
 | 
						|
		ParityBlocks: parityBlocks,
 | 
						|
		BlockSize:    blockSizeV1,
 | 
						|
		Distribution: hashOrder(object, dataBlocks+parityBlocks),
 | 
						|
	}
 | 
						|
	return fi
 | 
						|
}
 |