Closed martva closed 5 years ago
S3 has no concept of directories. There is a notion of "common prefixes", but this is not the same as a directory. I.e a "common prefix" is not a real thing; it's just a prefix shared by multiple objects. Also, if you wish to rename a "common prefix" in a bucket, you have to rename all objects under that prefix recursively.
Because directories don't exist in S3, ecs-sync will skip any directories when writing to S3. This is why you see errors during verification. So one option you have is to ignore any verification errors for directories.
However, ecs-sync does give you the option to "preserve" directories from a filesystem by storing them as empty objects and their attributes as user-metadata. They will not behave as directories in S3 (they will just be ordinary objects), but this allows you to restore them back to the filesystem in the future (including empty directories). This will also eliminate these verification errors (because the directory objects will exist in the target bucket)
We have setup a esc sync to be run from an NFS export to an EMC ESC hardware appliance. Access has been setup correctly, because data is being written to the target. But right after the sync is started it generates java errors for each directory and subdirectories that is found in the nfs export.
When looking at what is written on the target, it has written all directories and files that are also on the source.
Error example:
The above error is displayed for very single directory and subdirectory. It seems the errors are only generated when the Verify or the Verify_only option is selected.
For recreating the error these are the settings used: Source: NFS Export Target: DELL/EMC ECS Hardware Appliance Bucket on the ECS has been created by hand before the sync.