Background
This issue tracks the follow-up implementation deferred from PR #65 (discussion: #65 (comment)).
service/external_snap.go의 TakeSnapshot 함수는 현재 Core 하위호환성 문제로 의도적으로 미완성 상태입니다.
Tasks
1. Idempotent EnsureBucket helper (in client/rustfs.go)
- Add an
EnsureBucket(ctx, bucket) method on RustFSClient that calls CreateBucket and silently swallows BucketAlreadyOwnedByYou / BucketAlreadyExists errors.
- This prevents
NoSuchBucket errors when Core later PUTs to the presigned URL.
2. Call EnsureBucket in TakeSnapshot (in service/external_snap.go)
- Before calling
PresignPutObject, call rustfs.EnsureBucket(ctx, string(uuid)).
3. Wire up Core client call
- Pass the generated
presignedURL to the Core API when CreateVM is updated to include presigned URL support (Story 2+).
- Replace the current
// TODO comment with the actual Core client call.
When to implement
이 작업은 CreateVM에 presigned URL 지원이 추가되는 시점에 함께 개발되어야 합니다.
References
/cc @kwonkwonn
Background
This issue tracks the follow-up implementation deferred from PR #65 (discussion: #65 (comment)).
service/external_snap.go의TakeSnapshot함수는 현재 Core 하위호환성 문제로 의도적으로 미완성 상태입니다.Tasks
1. Idempotent
EnsureBuckethelper (inclient/rustfs.go)EnsureBucket(ctx, bucket)method onRustFSClientthat callsCreateBucketand silently swallowsBucketAlreadyOwnedByYou/BucketAlreadyExistserrors.NoSuchBucketerrors when Core later PUTs to the presigned URL.2. Call
EnsureBucketinTakeSnapshot(inservice/external_snap.go)PresignPutObject, callrustfs.EnsureBucket(ctx, string(uuid)).3. Wire up Core client call
presignedURLto the Core API whenCreateVMis updated to include presigned URL support (Story 2+).// TODOcomment with the actual Core client call.When to implement
이 작업은
CreateVM에 presigned URL 지원이 추가되는 시점에 함께 개발되어야 합니다.References
/cc @kwonkwonn