Object Storage CLI
Swift · OpenStack CLI · python-openstackclient
Manage containers and objects via the native OpenStack Swift CLI. For S3-compatible tools (aws-cli, s3cmd, rclone), see the S3 tools reference.
Containers
openstack container listList containersopenstack container show <name>Show container details and metadataopenstack container create <name>Create a containeropenstack container delete <name>Delete an empty containeropenstack container set --property <key>=<value> <name>Set container metadataObjects
openstack object list <container>List objects in a containeropenstack object show <container> <object>Show object metadataopenstack object create <container> <file>Upload an objectopenstack object save <container> <object>Download an objectopenstack object delete <container> <object>Delete an objectExamples
Upload files and manage containers
# Create a container openstack container create my-files # Upload a file openstack object create my-files ./report.pdf # List objects openstack object list my-files # +------------+-------+----------------------------------+ # | Name | Bytes | Content Type | # +------------+-------+----------------------------------+ # | report.pdf | 24576 | application/pdf | # +------------+-------+----------------------------------+ # Download openstack object save my-files report.pdf # Set container metadata (e.g., make public) openstack container set --property "X-Container-Read:.r:*" my-files
Bulk upload a directory
# Upload all files from a directory for f in ./uploads/*; do openstack object create my-files "$f" done # Verify openstack object list my-files -f table
Quake AI tips
S3 tools for bulk operations
For large-scale uploads or directory sync, aws-cli or rclone are significantly faster. See the S3 tools reference.
Container naming
Container names are project-scoped, not globally unique. Keep names short and descriptive.
Large objects
Objects over 5GB must use segmented upload. The Swift CLI handles this automatically with the --segment-size flag.