package com.xiaopeng.map.service;
|
|
import java.io.InputStream;
|
import java.util.List;
|
|
/**
|
* ROBOTAXI OSS 服务,用于上传 ODD 图层文件到阿里云 OSS。
|
* 路径格式:ROBOTAXI_ODD_layer/{环境}/{车辆uuid}/{fileName}
|
*/
|
public interface RobotaxiOssService {
|
|
/**
|
* 上传 ODD 图层文件到 OSS
|
* 路径:{pathPrefix}/{env}/{vehicleUuid}/{fileName}
|
*
|
* @param data 文件内容
|
* @param fileName 文件名(如 map_area_data.bin、map_area_rtree.fbs)
|
* @param vehicleUuid 车辆 UUID(动态)
|
* @return 上传成功后的 objectKey,失败时抛异常
|
*/
|
String uploadOddLayerFile(byte[] data, String fileName, String vehicleUuid);
|
|
/**
|
* 上传 ODD 图层文件到 OSS(InputStream 重载)
|
*
|
* @param inputStream 文件输入流
|
* @param contentLength 文件大小
|
* @param fileName 文件名
|
* @param vehicleUuid 车辆 UUID
|
* @return 上传成功后的 objectKey,失败时抛异常
|
*/
|
String uploadOddLayerFile(InputStream inputStream, long contentLength, String fileName,
|
String vehicleUuid);
|
|
/**
|
* 根据 OSS objectKey 删除单个文件
|
*
|
* @param objectKey OSS 对象键,如 ROBOTAXI_ODD_layer/test/vehicle-001/map_area_rtree.fbs
|
* @return 是否删除成功
|
*/
|
boolean deleteByObjectKey(String objectKey);
|
|
/**
|
* 根据 OSS objectKey 批量删除文件
|
*
|
* @param objectKeys OSS 对象键列表
|
* @return 成功删除的对象键列表
|
*/
|
List<String> deleteByObjectKeys(List<String> objectKeys);
|
|
/**
|
* 按前缀删除 ODD 路径下所有文件
|
* 路径前缀:{pathPrefix}/{env}/{vehicleUuid}/
|
*
|
* @param vehicleUuid 车辆 UUID
|
* @return 成功删除的 objectKey 列表
|
*/
|
List<String> deleteOddLayerFilesByPrefix(String vehicleUuid);
|
|
/**
|
* 根据 objectKey 生成文件下载临时链接(Presigned URL)
|
*
|
* @param objectKey OSS 对象键
|
* @param expireSeconds 有效期(秒)
|
* @return 带签名的临时下载 URL
|
*/
|
String generatePresignedDownloadUrl(String objectKey, int expireSeconds);
|
|
}
|