Skip to content

Commit 6db5550

Browse files
committed
fix(storage): symlink error
1 parent c045249 commit 6db5550

2 files changed

Lines changed: 10 additions & 7 deletions

File tree

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,4 @@ RUN UPX_VERSION=4.1.0; \
7373
tar -Jxvf upx-${UPX_VERSION}-${OS_ARCH}_linux.tar.xz; \
7474
cp upx-${UPX_VERSION}-${OS_ARCH}_linux/upx /usr/local/bin; \
7575
rm -rf upx-*; \
76-
pip install oss2;
76+
pip install oss2 packaging;

scripts/storage.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import re
33
import sys
44
import oss2
5+
from packaging.version import parse
56

67

78
bucket = oss2.Bucket(
@@ -48,18 +49,20 @@ def upload_list(stack_name, dist_dir):
4849

4950

5051
def symlink(stack_name, version):
51-
symlink_list = []
5252
object_list = [
5353
obj.key for obj in bucket.list_objects(
5454
f"stacks/{stack_name}/{stack_name}-{version}.").object_list
5555
]
56-
object_list.sort(reverse=True)
56+
prefix = f"stacks/{stack_name}/{stack_name}-"
57+
version_list = sorted(
58+
[obj.replace(prefix, "").split("-", 1)[0] for obj in object_list],
59+
key=parse,
60+
reverse=True,
61+
)
5762
for obj in object_list:
58-
name = f"stacks/{stack_name}/{stack_name}-{version}"
59-
symlink = re.sub("%s.([0-9]\.?){1,}" % name, name, obj)
60-
if symlink != obj and symlink not in symlink_list:
63+
if obj.startswith(f"{prefix}{version_list[0]}-"):
64+
symlink = re.sub("%s.([0-9]\.?){1,}" % f"{prefix}{version}", f"{prefix}{version}", obj)
6165
bucket.put_symlink(obj, symlink)
62-
symlink_list.append(symlink)
6366

6467

6568
if __name__ == "__main__":

0 commit comments

Comments
 (0)