Skip to main content

s3cmd Exclude Folder When Upload

When using s3cmd to sync or upload files to an S3 bucket, you can exclude specific files or folders using the --exclude option. This allows you to selectively upload content while excluding certain directories or files from being transferred.

Syntax for Excluding a Folder

To exclude a folder (or multiple folders) during the synchronization or upload process with s3cmd, follow this syntax:

s3cmd sync /path/to/local/folder s3://your-bucket-name/path/in/s3 --exclude "folder_name/*"
  • /path/to/local/folder: Path to the local folder you want to sync/upload.
  • s3://your-bucket-name/path/in/s3: S3 bucket destination path.
  • --exclude "folder_name/*": Specifies the folder name or pattern to exclude. Replace folder_name with the name of the folder you want to exclude.

Example

For instance, if you have a local folder named myfolder and you want to exclude a subfolder named excluded_folder when uploading to an S3 bucket named my-bucket, you can use:

s3cmd sync myfolder s3://my-bucket/ --exclude "excluded_folder/*"

This command ensures that the contents of excluded_folder within myfolder are not uploaded to my-bucket.

Additional Notes

  • Multiple Exclusions: You can specify multiple --exclude options to exclude multiple folders or patterns. For example:

    s3cmd sync myfolder s3://my-bucket/ --exclude "excluded_folder/*" --exclude "other_folder/*.txt"
    
  • Using Patterns: The --exclude option supports glob patterns (*, ?, [...]) to match multiple files or folders based on a pattern.

  • Preserve Metadata: Optionally use --preserve to preserve file metadata during synchronization, and --delete-removed to delete objects in S3 that are not present locally.

  • Consult Documentation: For more advanced usage or specific cases, refer to the s3cmd documentation (man s3cmd or s3cmd --help) for comprehensive details on its options and capabilities.

By leveraging the --exclude option in s3cmd, you can tailor your uploads to S3 to exclude specific folders or files as needed, ensuring flexibility and control over your synchronization operations. Adjust commands and options based on your specific requirements and environment.