mirror of
				https://github.com/minio/minio.git
				synced 2025-10-31 08:11:19 +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>
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Code generated by "stringer -type=storageMetric -trimprefix=storageMetric xl-storage-disk-id-check.go"; DO NOT EDIT.
 | |
| 
 | |
| package cmd
 | |
| 
 | |
| import "strconv"
 | |
| 
 | |
| func _() {
 | |
| 	// An "invalid array index" compiler error signifies that the constant values have changed.
 | |
| 	// Re-run the stringer command to generate them again.
 | |
| 	var x [1]struct{}
 | |
| 	_ = x[storageMetricMakeVolBulk-0]
 | |
| 	_ = x[storageMetricMakeVol-1]
 | |
| 	_ = x[storageMetricListVols-2]
 | |
| 	_ = x[storageMetricStatVol-3]
 | |
| 	_ = x[storageMetricDeleteVol-4]
 | |
| 	_ = x[storageMetricWalkDir-5]
 | |
| 	_ = x[storageMetricListDir-6]
 | |
| 	_ = x[storageMetricReadFile-7]
 | |
| 	_ = x[storageMetricAppendFile-8]
 | |
| 	_ = x[storageMetricCreateFile-9]
 | |
| 	_ = x[storageMetricReadFileStream-10]
 | |
| 	_ = x[storageMetricRenameFile-11]
 | |
| 	_ = x[storageMetricRenameData-12]
 | |
| 	_ = x[storageMetricCheckParts-13]
 | |
| 	_ = x[storageMetricCheckFile-14]
 | |
| 	_ = x[storageMetricDelete-15]
 | |
| 	_ = x[storageMetricDeleteVersions-16]
 | |
| 	_ = x[storageMetricVerifyFile-17]
 | |
| 	_ = x[storageMetricWriteAll-18]
 | |
| 	_ = x[storageMetricDeleteVersion-19]
 | |
| 	_ = x[storageMetricWriteMetadata-20]
 | |
| 	_ = x[storageMetricUpdateMetadata-21]
 | |
| 	_ = x[storageMetricReadVersion-22]
 | |
| 	_ = x[storageMetricReadAll-23]
 | |
| 	_ = x[storageMetricLast-24]
 | |
| }
 | |
| 
 | |
| const _storageMetric_name = "MakeVolBulkMakeVolListVolsStatVolDeleteVolWalkDirListDirReadFileAppendFileCreateFileReadFileStreamRenameFileRenameDataCheckPartsCheckFileDeleteDeleteVersionsVerifyFileWriteAllDeleteVersionWriteMetadataUpdateMetadataReadVersionReadAllLast"
 | |
| 
 | |
| var _storageMetric_index = [...]uint8{0, 11, 18, 26, 33, 42, 49, 56, 64, 74, 84, 98, 108, 118, 128, 137, 143, 157, 167, 175, 188, 201, 215, 226, 233, 237}
 | |
| 
 | |
| func (i storageMetric) String() string {
 | |
| 	if i >= storageMetric(len(_storageMetric_index)-1) {
 | |
| 		return "storageMetric(" + strconv.FormatInt(int64(i), 10) + ")"
 | |
| 	}
 | |
| 	return _storageMetric_name[_storageMetric_index[i]:_storageMetric_index[i+1]]
 | |
| }
 |