oras-project / oras-go

ORAS Go library
https://oras.land
Apache License 2.0
184 stars 99 forks source link

Oras does not read re-archived docker TAR files correctly #851

Open Atharex opened 1 day ago

Atharex commented 1 day ago

Details & original discussion thread here: https://github.com/oras-project/oras/discussions/1539

Wwwsylvia commented 5 hours ago

The read-only OCI store fails to read the OCI layout structure in the tar archive with paths like this:

./
./ingest/
./oci-layout
./blobs/
./manifest.json
./index.json
./blobs/sha256/
./blobs/sha256/47e549d92058c6be6788e0a58015139799b80f4dfce7f15b652fc1e1e9173f3c
./blobs/sha256/aea846b98069d2b6e8f724516dc240bb64d8c1442bff11a4214285b332752e17
./blobs/sha256/e8a12bb7d8bb7ed656f75d7704f0e71fa87ecacce976771b5ec3e2c33f0af4ef
./blobs/sha256/b330ae2d2adaa388d4550a8eefd9c2ed0408e71fbe88d1024923c07e4d159534
./blobs/sha256/8bdfa8f36fb2a96b290e2a9d34417d0d75bb336dda841b02fcfe7c71ed8e82ac
./blobs/sha256/6c0706c7fd54fc41b413f8afc8fc0a16ef3533304662d8c76dde77550daa6ce5
./blobs/sha256/2641af8aae2ffd04482f279a21b42efb998d9b3749f148a8702ae0fa3cc8ebe9
./blobs/sha256/44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
./blobs/sha256/1bd70f80990f7476d7e49358341e36e75e1d35e1c086aea137066b0a8ffaabdb
./blobs/sha256/4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
./blobs/sha256/63e80638f63862663c24c5add6bc2061c36630999dd82ed1dd6930eefb40321b
./blobs/sha256/b10317b39372a42769eae7f844cfb40847472f5ebc6512949ef79d4ed4b2ce5f
./blobs/sha256/3c9a20db4bdb148f9288d39bd7f5a77e74a0215d80657414da618c1cecabffde
./blobs/sha256/6c371231fb54e10d0664c39c6987da28b54ca0ae4d4b24ca5b2c39cd66d4f5d9
./blobs/sha256/6bffa3eeff0dabf4d524b76ff2a40e5fe81288e433e0fa1282d9ab6b3e1400fd
./blobs/sha256/7e3b87ef0305b2734e28a5167505d67ee07ef7e9abd9b2a22a3af587a87047e0

Currently it can only recognize path like this:

blobs/
blobs/sha256/
blobs/sha256/1bd70f80990f7476d7e49358341e36e75e1d35e1c086aea137066b0a8ffaabdb
blobs/sha256/2641af8aae2ffd04482f279a21b42efb998d9b3749f148a8702ae0fa3cc8ebe9
blobs/sha256/3c9a20db4bdb148f9288d39bd7f5a77e74a0215d80657414da618c1cecabffde
blobs/sha256/47e549d92058c6be6788e0a58015139799b80f4dfce7f15b652fc1e1e9173f3c
blobs/sha256/4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
blobs/sha256/63e80638f63862663c24c5add6bc2061c36630999dd82ed1dd6930eefb40321b
blobs/sha256/6c0706c7fd54fc41b413f8afc8fc0a16ef3533304662d8c76dde77550daa6ce5
blobs/sha256/7e3b87ef0305b2734e28a5167505d67ee07ef7e9abd9b2a22a3af587a87047e0
blobs/sha256/8bdfa8f36fb2a96b290e2a9d34417d0d75bb336dda841b02fcfe7c71ed8e82ac
blobs/sha256/aea846b98069d2b6e8f724516dc240bb64d8c1442bff11a4214285b332752e17
blobs/sha256/b10317b39372a42769eae7f844cfb40847472f5ebc6512949ef79d4ed4b2ce5f
blobs/sha256/b330ae2d2adaa388d4550a8eefd9c2ed0408e71fbe88d1024923c07e4d159534
blobs/sha256/e8a12bb7d8bb7ed656f75d7704f0e71fa87ecacce976771b5ec3e2c33f0af4ef
index.json
manifest.json
oci-layout

We should improve the implementation of tarfs.