开发者社区 > 云原生 > Serverless > 正文

关于OSS解压zip包 mac压缩出来的zip包 , 在OSS解压出来与实际的路径不一样

关于OSS解压zip包 mac压缩出来的zip包 , 在OSS解压出来与实际的路径不一样

提问29.png

触发器配置是解压到PICTURE_ZIP_DECOMPRESSION_DIRECTORY/但是路径多了一个MyTestUploadMain这个是啥问题呀

zip名称为:MyTestUploadMain.zip

展开
收起
函数计算小白 2023-05-18 10:26:17 47872 0
10 条回答
写回答
取消 提交回答
  • 吆西

    请看正确答案↓

    在OSS解压zip包时,路径可能与实际的路径不一样,可能是由于操作系统和OSS之间的路径分隔符不同所导致的。例如,macOS使用反斜杠(/)作为路径分隔符,而Linux和其他Unix系统使用正斜杠(/)作为路径分隔符。

    如果你使用zip命令将一个目录压缩为zip文件,并且该目录中包含子目录,那么在解压缩时,子目录的路径可能会被展开到父目录中。这可能会导致文件解压缩到错误的路径上。

    为了解决这个问题,你可以在解压缩zip文件之前,将其解压缩到某个特定的目录下,例如/tmp/my_unzipped_files。你可以使用以下命令将zip文件解压缩到该目录下:

    bash

    unzip /path/to/my_zip_file.zip -d /tmp/my_unzipped_files

    这将把zip文件中的所有文件解压缩到/tmp/my_unzipped_files目录下。你可以在解压缩后,将文件移动到正确的位置,或者使用适当的符号链接来指向它们。

    2023-05-26 09:40:18
    赞同 2 展开评论 打赏
  • 这个问题的原因可能是由于Mac OS和Linux系统之间的文件路径字符集不同导致的。在Mac OS中,路径分隔符是“:”,而在Linux中,路径分隔符是“/”。

    解决这个问题的方法有以下几种:

    使用支持跨平台操作的压缩软件,例如tar、gzip等。这些软件在压缩时会使用标准的Unix路径分隔符,因此可以在Mac OS和Linux之间无缝切换。 在Mac OS中使用支持Unix路径分隔符的压缩软件,例如“终端”中的“gzip”或“tar”命令。 在Linux中使用支持Mac OS路径分隔符的压缩软件,例如“unar”或“p7zip”等。 无论使用哪种方法,都可以确保在解压缩时使用正确的路径分隔符,从而避免出现解压路径不正确的问题。

    2023-05-24 08:47:26
    赞同 3 展开评论 打赏
  • 在函数配置 环境变量中 将RETAIN_FILE_NAME 改为 false试下。

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-05-18 20:09:24
    赞同 3 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云OSS是一种对象存储服务,并没有提供直接解压zip文件的API,所以解压zip包需要在本地完成,再通过OSS API上传解压后的文件。

    解压zip文件后,得到的文件夹路径与实际路径不一致的问题,可能是由于zip文件中包含了一些文件夹,但这些文件夹在OSS上并不存在,导致复制过程中路径发生了变化。

    解决方法如下:

    1. 将zip包解压到本地,并确保文件夹路径正确无误。

    2. 使用OSS API上传解压后的文件夹,这样上传的文件夹路径应该与本地解压出来的文件夹路径是一致的,就不会出现路径不一致的问题了。

    关于上传文件夹到OSS,您可以使用OSS提供的SDK或命令行工具ossutil来进行操作。具体的步骤和参数请参考阿里云官方文档。

    2023-05-18 18:43:58
    赞同 2 展开评论 打赏
  • 值得去的地方都没有捷径

    根据您提供的截图,可以看到触发器配置中的解压路径为:PICTURE_ZIP_DECOMPRESSION_DIRECTORY/MyTestUploadMain,因此在解压zip包时会在该目录下创建一个名为MyTestUploadMain的文件夹,并将zip包中的文件解压到该文件夹中。

    如果您希望解压后的文件直接放在PICTURE_ZIP_DECOMPRESSION_DIRECTORY目录下,可以将触发器配置中的解压路径修改为:PICTURE_ZIP_DECOMPRESSION_DIRECTORY/,即去掉MyTestUploadMain这一部分。

    2023-05-18 16:10:19
    赞同 1 展开评论 打赏
  • 月移花影,暗香浮动

    如果在 OSS 中解压缩出来的文件与实际路径不一致,可能是由于您在解压时有所偏差或者操作有误。您可以按照以下步骤重新进行解压缩操作,确保操作正确:

    1. 打开 OSS 控制台,登录您的账户。
    2. 找到您要解压缩的 ZIP 文件,并在其右侧选中“管理”按钮,选择“解压缩”操作。
    3. 在弹出的解压缩窗口中,填写解压缩的目录路径,确保目录路径正确,同时选择“立即解压”选项,单击“确定”按钮。
    4. 等待解压缩完成后,进入解压缩后的目录,查看解压出来的文件是否与您期望的一致。

    如果您仍然无法找到期望的解压缩文件,建议您检查一下操作是否有误,也可以重新上传文件并重新进行解压缩操作。此外,您还可以在 OSS 控制台上查看解压缩操作的日志,以便查找问题原因。

    2023-05-18 14:51:31
    赞同 1 展开评论 打赏
  • 可能是因为在压缩时使用了相对路径,导致解压时路径不一致。可以尝试重新压缩文件,使用绝对路径,或者在解压时指定正确的路径。另外,OSS解压zip包也可能存在错误或者限制,可以先在本地解压并检查文件是否正确。

    2023-05-18 14:44:44
    赞同 展开评论 打赏
  • 根据您的问题描述,可能是以下原因导致解压后的路径不符合您的预期:

    1. OSS 上存储的 zip 包中可能包含了根目录(MyTestUploadMain)。这意味着您解压后所有的文件和文件夹都包含在 MyTestUploadMain 这个目录下面。所以在解压到 OSS 文件夹路径时,也需要将 MyTestUploadMain 设置为根目录。因此,您的解压路径就成了 PICTURE_ZIP_DECOMPRESSION_DIRECTORY/MyTestUploadMain,而不仅仅是 PICTURE_ZIP_DECOMPRESSION_DIRECTORY/。

    2. 可能在解压缩脚本中对解压缩后的文件和文件夹指定了 MyTestUploadMain 这个根目录,导致所有的文件和文件夹都被放到了 MyTestUploadMain 目录下面。因此,解压缩后的路径也需要包含这个目录。

    您可以检查一下您的解压缩脚本或者操作步骤,看是否有固定的根目录。如果是这个原因导致的,您可以修改您的解压脚本,让它自动去除这个多余的目录。

    另外,如果您使用的是命令行方式解压缩,可以在解压缩命令中指定“-j”参数,让解压缩后的文件不带任何路径信息,这样就不会有额外的文件夹路径了。

    例如,在 Linux 环境下,解压缩命令可以这样写:

    unzip -j -o MyTestUploadMain.zip -d /your/target/path/
    

    在 Windows 环境下,解压缩命令可以这样写:

    unzip -j -o MyTestUploadMain.zip -d C:\your\target\path\
    

    其中,“-j”表示解压缩时去掉目录结构信息,“-o”表示覆盖已存在的文件。

    2023-05-18 11:12:51
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    OSS控制台新增了一个ZIP文件自动解压的功能,这个功能的提供需要结合函数计算来共同完成,用户仅需要在OSS控制台上设置在那个Bucket下配置触发条件,目前只对ZIP后缀的文件进行处理。具体的解压规则可以参考文档:ZIP包解压或者也可以使用函数计算实现压缩文件的自动解压,参考文档:文档

    2023-05-18 10:42:19
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    可能是因为Mac系统在压缩文件时,会自动添加一个名为“__MACOSX”的隐藏文件夹,该文件夹保存了文件在Mac系统中的元数据信息,但在其他平台上解压时,这个文件夹并没有被解压出来,导致解压路径不一致。建议在压缩文件时,先将“__MACOSX”文件夹删除,再压缩文件。

    2023-05-18 10:42:19
    赞同 展开评论 打赏
滑动查看更多

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载