Skip to content

kevit/swift_undelete

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Middleware for OpenStack Swift that implements undelete functionality.

When this middleware is installed, an object DELETE request will cause a copy of the object to be saved into a "trash location" prior to deletion. Subsequently, an administrator can recover the deleted object.

Caveats:

  • This does not provide protection against overwriting an object. Use Swift's object versioning if you require overwrite protection.

  • If your account names are near the maximum length, this middleware will fail to create trash accounts, leaving some objects unable to be deleted.

  • If your container names are near the maximum length, this middleware will fail to create trash containers, leaving some objects unable to be deleted.

  • If your cluster is too full to allow an object to be copied, you will be unable to delete it. In extremely full clusters, this may result in a situation where you need to add capacity before you can delete objects.

Future work:

  • Allow undelete to be enabled only for particular accounts or containers

  • Move to separate account, not container, for trash. This requires Swift to allow cross-account COPY requests.

  • If block_trash_deletes is on, modify the Allow header in responses (both OPTIONS responses and any other 405 response).

Swift-Undelete is Copyright (c) 2014 SwiftStack, Inc. and licensed under the Apache 2.0 license (see LICENSE).

About

Undelete middleware for OpenStack Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published