feat(webdav): add WebDAV protocol gateway (#2158)
Signed-off-by: yxrxy <[email protected]> Co-authored-by: houseme <[email protected]> Co-authored-by: 马登山 <[email protected]> Co-authored-by: heihutu <[email protected]> Co-authored-by: Copilot Autofix powered by AI <[email protected]> Co-authored-by: 安正超 <[email protected]>
This commit is contained in:
co-authored by
houseme
马登山
heihutu
Copilot Autofix powered by AI
安正超
parent
f66a90c1b2
commit
d3cff7d033
@@ -182,6 +182,35 @@ pub fn is_operation_supported(protocol: super::session::Protocol, action: &S3Act
|
||||
S3Action::GetObjectAcl => false,
|
||||
S3Action::PutObjectAcl => false,
|
||||
},
|
||||
super::session::Protocol::WebDav => match action {
|
||||
// Bucket operations
|
||||
S3Action::CreateBucket => true, // MKCOL at root level
|
||||
S3Action::DeleteBucket => true, // DELETE at root level
|
||||
S3Action::ListBucket => true, // PROPFIND
|
||||
S3Action::ListBuckets => true, // PROPFIND at root
|
||||
S3Action::HeadBucket => true, // PROPFIND/HEAD
|
||||
|
||||
// Object operations
|
||||
S3Action::GetObject => true, // GET
|
||||
S3Action::PutObject => true, // PUT
|
||||
S3Action::DeleteObject => true, // DELETE
|
||||
S3Action::HeadObject => true, // HEAD/PROPFIND
|
||||
S3Action::CopyObject => false, // COPY (not implemented yet)
|
||||
|
||||
// Multipart operations (not supported in WebDAV)
|
||||
S3Action::CreateMultipartUpload => false,
|
||||
S3Action::UploadPart => false,
|
||||
S3Action::CompleteMultipartUpload => false,
|
||||
S3Action::AbortMultipartUpload => false,
|
||||
S3Action::ListMultipartUploads => false,
|
||||
S3Action::ListParts => false,
|
||||
|
||||
// ACL operations (not supported in WebDAV)
|
||||
S3Action::GetBucketAcl => false,
|
||||
S3Action::PutBucketAcl => false,
|
||||
S3Action::GetObjectAcl => false,
|
||||
S3Action::PutObjectAcl => false,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ use std::sync::Arc;
|
||||
pub enum Protocol {
|
||||
Ftps,
|
||||
Swift,
|
||||
WebDav,
|
||||
}
|
||||
|
||||
/// Protocol principal representing an authenticated user
|
||||
|
||||
Reference in New Issue
Block a user