When we had an issue with the GCS resource (the user could not unarchive our docker image properly), we investigated.
It turned out that the resource was using the golang libraries for tar and zip.
The libraries are helpful, but it turned out they did not handle edge cases with symlinks.
We made a PR to the GCS resource to have it use the CLIS.
We did try to use the archiver library in golang, but it could not handle the symlinks.
The PR follows the same patterns done by the native s3-resource.
When we had an issue with the GCS resource (the user could not unarchive our docker image properly), we investigated. It turned out that the resource was using the golang libraries for tar and zip. The libraries are helpful, but it turned out they did not handle edge cases with symlinks.
We made a PR to the GCS resource to have it use the CLIS. We did try to use the
archiver
library in golang, but it could not handle the symlinks. The PR follows the same patterns done by the native s3-resource.