这个是报错文件,是不是实时计算Flink没有用户访问的目录啊?2023-07-24 14:54:49,627 INFO com.aliyun.oss [] - Illegal file path: ./RoadCompiler_res.txt
2023-07-24 14:54:49,818 INFO com.aliyun.oss [] - Illegal file path: ./compiler_log
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
是否有做过MultipartFile 转 File,若有问题可能出在转换上。writeFromStream把流写进文件,也需要使用return值才行。
参考代码如下:
/**
* 正确代码
*/
import cn.hutool.core.io.FileUtil;
public static File multipartFileToFile(MultipartFile multipartFile,String filePath, String realName) {
String lastFilePath = filePath + File.separator + realName;
try {
return FileUtil.writeFromStream(multipartFile.getInputStream(), lastFile);
} catch (IOException e) {
log.error(e.getMessage());
}
return null;
}
——参考链接。
根据您提供的日志信息,阿里云OSS(对象存储服务)抛出了“非法文件路径”(Illegal file path
)的警告。这意味着尝试上传或访问的文件路径对于OSS来说是无效的。
阿里云OSS并非像传统的文件系统那样具有层级目录结构,它是一个扁平化的键值对存储服务,每个对象都由唯一的URL标识,这个URL包含了Bucket名和对象键(Key)。在OSS中,键(Key)可以包含斜杠(/)来模拟目录结构,但实际上这些“目录”并不真实存在,而是通过Key的组成部分来模拟。
因此,当尝试上传文件到OSS时,诸如./RoadCompiler_res.txt
和./compiler_log
这样的相对路径是不被接受的。正确的做法应该是提供一个完整的OSS对象键,例如my-bucket-name/path/to/RoadCompiler_res.txt
。
如果是在Flink实时计算任务中使用OSS作为存储组件,那么可能需要确保Flink作业正确配置了OSS的相关访问参数,并且在上传或读取文件时使用的是OSS对象的完整路径格式。同时,请确认是否有正确的权限访问指定的OSS资源,包括相应的读写权限设置。
在这段日志中,有两个事件分别发生在 2023 年 7 月 24 日下午两点四十九分五十六秒和四十五秒。这两个事件都在阿里云 OSS 上进行了非法文件路径操作。
第一个事件涉及到文件 "./RoadCompiler_res.txt",第二个事件则涉及到文件 "./compiler_log"。两个事件都被标记为 ILLEGAL_FILE_PATH,表示这些文件路径不符合 OSS 的规则。
OSS(Object Storage Service)是一个海量存储服务,它的设计目标是为了提高效率和稳定性。因此,对于非法的文件路径操作,比如不存在的文件或者不在合法范围内(例如,不应该存在于公共区域的文件),都会被识别为非法。
至于为什么会提示这样的错误,原因可能有很多种。可能是文件本身存在权限问题,也可能是因为文件所在的目录结构有问题,甚至可能是文件名称拼写错误等原因。不过,如果没有更多的上下文信息,很难准确判断问题的根本原因。
如果你需要更多帮助,最好能提供更多细节,比如这是哪个项目的日志,这些文件在哪里存放,以及你期望达到什么目的等。
根据报错日志,问题出在阿里云OSS(Object Storage Service)的上传文件路径不合法。
具体来说,报错信息中提到的"Illegal file path"表示文件路径不合法。在Linux或Unix系统中,文件路径通常以"/"开头,而在这个报错日志中,文件路径以"."开头,这是不合法的。
为了解决这个问题,您需要确保文件路径的正确性。如果您想上传"RoadCompiler_res.txt"和"compiler_log"文件到阿里云OSS,您应该使用以下路径:
./RoadCompiler_res.txt
./compiler_log
CopyCopy
请确保路径中的"."被正确替换为"/"。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。