|
@ -251,6 +251,8 @@ func (r *BatchJobReplicateV1) copyWithMultipartfromSource(ctx context.Context, a |
|
|
return err |
|
|
return err |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const s3StorageClassGlacier = "GLACIER" |
|
|
|
|
|
|
|
|
// StartFromSource starts the batch replication job from remote source, resumes if there was a pending job via "job.ID"
|
|
|
// StartFromSource starts the batch replication job from remote source, resumes if there was a pending job via "job.ID"
|
|
|
func (r *BatchJobReplicateV1) StartFromSource(ctx context.Context, api ObjectLayer, job BatchJobRequest) error { |
|
|
func (r *BatchJobReplicateV1) StartFromSource(ctx context.Context, api ObjectLayer, job BatchJobRequest) error { |
|
|
ri := &batchJobInfo{ |
|
|
ri := &batchJobInfo{ |
|
@ -381,6 +383,12 @@ func (r *BatchJobReplicateV1) StartFromSource(ctx context.Context, api ObjectLay |
|
|
skipReplicate := false |
|
|
skipReplicate := false |
|
|
|
|
|
|
|
|
for obj := range objInfoCh { |
|
|
for obj := range objInfoCh { |
|
|
|
|
|
if s3Type && obj.StorageClass == s3StorageClassGlacier { |
|
|
|
|
|
// Skip GLACIER tiered objects for AWS S3 or any S3
|
|
|
|
|
|
// compatible object storage vendors.
|
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
oi := toObjectInfo(r.Source.Bucket, obj.Key, obj) |
|
|
oi := toObjectInfo(r.Source.Bucket, obj.Key, obj) |
|
|
if !minioSrc { |
|
|
if !minioSrc { |
|
|
oi2, err := c.StatObject(ctx, r.Source.Bucket, obj.Key, miniogo.StatObjectOptions{}) |
|
|
oi2, err := c.StatObject(ctx, r.Source.Bucket, obj.Key, miniogo.StatObjectOptions{}) |
|
|