mirror of
				https://github.com/minio/minio.git
				synced 2025-11-04 02:01:05 +01:00 
			
		
		
		
	With this change, MinIO's ILM supports transitioning objects to a remote tier. This change includes support for Azure Blob Storage, AWS S3 compatible object storage incl. MinIO and Google Cloud Storage as remote tier storage backends. Some new additions include: - Admin APIs remote tier configuration management - Simple journal to track remote objects to be 'collected' This is used by object API handlers which 'mutate' object versions by overwriting/replacing content (Put/CopyObject) or removing the version itself (e.g DeleteObjectVersion). - Rework of previous ILM transition to fit the new model In the new model, a storage class (a.k.a remote tier) is defined by the 'remote' object storage type (one of s3, azure, GCS), bucket name and a prefix. * Fixed bugs, review comments, and more unit-tests - Leverage inline small object feature - Migrate legacy objects to the latest object format before transitioning - Fix restore to particular version if specified - Extend SharedDataDirCount to handle transitioned and restored objects - Restore-object should accept version-id for version-suspended bucket (#12091) - Check if remote tier creds have sufficient permissions - Bonus minor fixes to existing error messages Co-authored-by: Poorna Krishnamoorthy <poorna@minio.io> Co-authored-by: Krishna Srinivas <krishna@minio.io> Signed-off-by: Harshavardhana <harsha@minio.io>
		
			
				
	
	
		
			90 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright (c) 2015-2021 MinIO, Inc.
 | 
						|
//
 | 
						|
// This file is part of MinIO Object Storage stack
 | 
						|
//
 | 
						|
// This program is free software: you can redistribute it and/or modify
 | 
						|
// it under the terms of the GNU Affero General Public License as published by
 | 
						|
// the Free Software Foundation, either version 3 of the License, or
 | 
						|
// (at your option) any later version.
 | 
						|
//
 | 
						|
// This program is distributed in the hope that it will be useful
 | 
						|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
// GNU Affero General Public License for more details.
 | 
						|
//
 | 
						|
// You should have received a copy of the GNU Affero General Public License
 | 
						|
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 | 
						|
package cmd
 | 
						|
 | 
						|
const (
 | 
						|
	peerRESTVersion       = "v15" // Add LoadTransitionTierConfig
 | 
						|
	peerRESTVersionPrefix = SlashSeparator + peerRESTVersion
 | 
						|
	peerRESTPrefix        = minioReservedBucketPath + "/peer"
 | 
						|
	peerRESTPath          = peerRESTPrefix + peerRESTVersionPrefix
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	peerRESTMethodHealth                   = "/health"
 | 
						|
	peerRESTMethodServerInfo               = "/serverinfo"
 | 
						|
	peerRESTMethodDriveInfo                = "/driveinfo"
 | 
						|
	peerRESTMethodNetInfo                  = "/netinfo"
 | 
						|
	peerRESTMethodCPUInfo                  = "/cpuinfo"
 | 
						|
	peerRESTMethodDiskHwInfo               = "/diskhwinfo"
 | 
						|
	peerRESTMethodOsInfo                   = "/osinfo"
 | 
						|
	peerRESTMethodMemInfo                  = "/meminfo"
 | 
						|
	peerRESTMethodProcInfo                 = "/procinfo"
 | 
						|
	peerRESTMethodDispatchNetInfo          = "/dispatchnetinfo"
 | 
						|
	peerRESTMethodDeleteBucketMetadata     = "/deletebucketmetadata"
 | 
						|
	peerRESTMethodLoadBucketMetadata       = "/loadbucketmetadata"
 | 
						|
	peerRESTMethodGetBucketStats           = "/getbucketstats"
 | 
						|
	peerRESTMethodServerUpdate             = "/serverupdate"
 | 
						|
	peerRESTMethodSignalService            = "/signalservice"
 | 
						|
	peerRESTMethodBackgroundHealStatus     = "/backgroundhealstatus"
 | 
						|
	peerRESTMethodGetLocks                 = "/getlocks"
 | 
						|
	peerRESTMethodLoadUser                 = "/loaduser"
 | 
						|
	peerRESTMethodLoadServiceAccount       = "/loadserviceaccount"
 | 
						|
	peerRESTMethodDeleteUser               = "/deleteuser"
 | 
						|
	peerRESTMethodDeleteServiceAccount     = "/deleteserviceaccount"
 | 
						|
	peerRESTMethodLoadPolicy               = "/loadpolicy"
 | 
						|
	peerRESTMethodLoadPolicyMapping        = "/loadpolicymapping"
 | 
						|
	peerRESTMethodDeletePolicy             = "/deletepolicy"
 | 
						|
	peerRESTMethodLoadGroup                = "/loadgroup"
 | 
						|
	peerRESTMethodStartProfiling           = "/startprofiling"
 | 
						|
	peerRESTMethodDownloadProfilingData    = "/downloadprofilingdata"
 | 
						|
	peerRESTMethodCycleBloom               = "/cyclebloom"
 | 
						|
	peerRESTMethodTrace                    = "/trace"
 | 
						|
	peerRESTMethodListen                   = "/listen"
 | 
						|
	peerRESTMethodLog                      = "/log"
 | 
						|
	peerRESTMethodGetLocalDiskIDs          = "/getlocaldiskids"
 | 
						|
	peerRESTMethodGetBandwidth             = "/bandwidth"
 | 
						|
	peerRESTMethodGetMetacacheListing      = "/getmetacache"
 | 
						|
	peerRESTMethodUpdateMetacacheListing   = "/updatemetacache"
 | 
						|
	peerRESTMethodGetPeerMetrics           = "/peermetrics"
 | 
						|
	peerRESTMethodLoadTransitionTierConfig = "/loadtransitiontierconfig"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	peerRESTBucket         = "bucket"
 | 
						|
	peerRESTBuckets        = "buckets"
 | 
						|
	peerRESTUser           = "user"
 | 
						|
	peerRESTGroup          = "group"
 | 
						|
	peerRESTUserTemp       = "user-temp"
 | 
						|
	peerRESTPolicy         = "policy"
 | 
						|
	peerRESTUserOrGroup    = "user-or-group"
 | 
						|
	peerRESTIsGroup        = "is-group"
 | 
						|
	peerRESTSignal         = "signal"
 | 
						|
	peerRESTProfiler       = "profiler"
 | 
						|
	peerRESTTraceErr       = "err"
 | 
						|
	peerRESTTraceInternal  = "internal"
 | 
						|
	peerRESTTraceStorage   = "storage"
 | 
						|
	peerRESTTraceS3        = "s3"
 | 
						|
	peerRESTTraceOS        = "os"
 | 
						|
	peerRESTTraceThreshold = "threshold"
 | 
						|
 | 
						|
	peerRESTListenBucket = "bucket"
 | 
						|
	peerRESTListenPrefix = "prefix"
 | 
						|
	peerRESTListenSuffix = "suffix"
 | 
						|
	peerRESTListenEvents = "events"
 | 
						|
)
 |