Using S3Express you can easily list all non-private objects in a bucket. The command to use is the following:
ls my_bucket_name -s -cond:"s3_acl_is_private = false"
where: my_bucket_name is the name of the bucket -s is used to include subfolders (e.g. recursive) -cond is the filtering condition to only list objects which do not have private ACL.
This command will list all non-private objects in a S3 bucket.
If you prefer to just see a summary of the total amount of objects present in a bucket that are not private, instead of listing each object's name, add the flag -sum, e.g.:
ls my_bucket_name -s -cond:"s3_acl_is_private = false" -sum
Depending on the amount of objects to check in the bucket, it may take some time for the above command to complete, because each object's ACL must be queried by S3Express, even if the querying is done by S3Express in a multithreaded, concurrent fashion.