Package com.bytedesk.wechat.work.upload
Class WeChatWorkUploadService
java.lang.Object
com.bytedesk.wechat.work.upload.WeChatWorkUploadService
企业微信附件上传服务实现
- Author:
- kefux.com
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.springframework.web.client.RestTemplate
private static final String
上传附件资源URL -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
构建上传URLprivate String
determineMediaType
(String fileName) 根据文件名判断媒体类型private void
downloadFile
(String fileUrl, Path targetPath) 从URL下载文件byte[]
downloadMedia
(String accessToken, String mediaId) 下载临时素材媒体文件downloadMediaToFile
(String accessToken, String mediaId, String savePath) 下载临时素材媒体文件并保存到本地downloadMediaToTempFile
(String accessToken, String mediaId, String fileExtension) 下载临时素材媒体文件并保存到临时目录private String
getFileNameFromUrl
(String fileUrl) 从URL中获取文件名getUploadByUrlResult
(String accessToken, String jobid) 查询异步上传任务结果uploadAttachment
(String accessToken, String mediaType, int attachmentType, File file) 上传附件资源uploadAttachment
(String accessToken, String mediaType, int attachmentType, org.springframework.web.multipart.MultipartFile file) 上传附件资源uploadImage
(String accessToken, File file) 上传图片获取永久URLuploadMedia
(File file, WeChatWorkThreadExtra weChatWorkExtra) 上传媒体文件便捷方法,从WeChatWorkThreadExtra获取accessTokenuploadMedia
(String accessToken, String mediaType, File file) 上传临时素材媒体文件uploadMedia
(String accessToken, String mediaType, org.springframework.web.multipart.MultipartFile file) 上传临时素材媒体文件(MultipartFile版本)uploadMediaByUrl
(String accessToken, int scene, String type, String filename, String url, String md5) 异步上传临时素材uploadMediaFromPath
(String filePath, String mediaType, String accessToken) 通过本地文件路径上传媒体文件uploadMediaFromUrl
(String fileUrl, String mediaType, String accessToken) 从URL下载文件并上传到企业微信private boolean
validateFileSize
(File file, String mediaType) 验证文件大小是否符合限制private boolean
validateFileType
(File file, String mediaType) 验证文件类型是否符合要求
-
Field Details
-
restTemplate
private final org.springframework.web.client.RestTemplate restTemplate -
UPLOAD_ATTACHMENT_URL
上传附件资源URL- See Also:
-
-
Constructor Details
-
WeChatWorkUploadService
public WeChatWorkUploadService()
-
-
Method Details
-
uploadAttachment
public WeChatWorkUploadResponse uploadAttachment(String accessToken, String mediaType, int attachmentType, File file) 上传附件资源- Parameters:
accessToken
- 企业微信访问令牌mediaType
- 媒体文件类型,分别有图片(image)、视频(video)、普通文件(file)attachmentType
- 附件类型,不同的附件类型用于不同的场景。1:朋友圈;2:商品图册file
- 要上传的文件- Returns:
- 上传结果响应
-
uploadAttachment
public WeChatWorkUploadResponse uploadAttachment(String accessToken, String mediaType, int attachmentType, org.springframework.web.multipart.MultipartFile file) 上传附件资源- Parameters:
accessToken
- 企业微信访问令牌mediaType
- 媒体文件类型,分别有图片(image)、视频(video)、普通文件(file)attachmentType
- 附件类型,不同的附件类型用于不同的场景。1:朋友圈;2:商品图册file
- 要上传的MultipartFile文件- Returns:
- 上传结果响应
-
buildUrl
构建上传URL- Parameters:
accessToken
- 访问令牌mediaType
- 媒体类型attachmentType
- 附件类型- Returns:
- 完整的URL
-
uploadMedia
上传临时素材媒体文件- Parameters:
accessToken
- 企业微信访问令牌mediaType
- 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)、普通文件(file)file
- 要上传的文件- Returns:
- 上传结果响应
-
uploadMedia
public WeChatWorkUploadResponse uploadMedia(String accessToken, String mediaType, org.springframework.web.multipart.MultipartFile file) 上传临时素材媒体文件(MultipartFile版本)- Parameters:
accessToken
- 企业微信访问令牌mediaType
- 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)、普通文件(file)file
- 要上传的MultipartFile文件- Returns:
- 上传结果响应
-
uploadMediaFromPath
public WeChatWorkUploadResponse uploadMediaFromPath(String filePath, String mediaType, String accessToken) 通过本地文件路径上传媒体文件- Parameters:
filePath
- 本地文件路径mediaType
- 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)、普通文件(file)accessToken
- 企业微信访问令牌- Returns:
- 上传结果响应
-
uploadMediaFromUrl
public WeChatWorkUploadResponse uploadMediaFromUrl(String fileUrl, String mediaType, String accessToken) 从URL下载文件并上传到企业微信- Parameters:
fileUrl
- 文件URLmediaType
- 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)、普通文件(file)accessToken
- 企业微信访问令牌- Returns:
- 上传结果响应
-
downloadFile
从URL下载文件- Parameters:
fileUrl
- 文件URLtargetPath
- 保存的目标路径- Throws:
IOException
- 下载过程中的IO异常
-
getFileNameFromUrl
从URL中获取文件名- Parameters:
fileUrl
- 文件URL- Returns:
- 文件名
-
uploadMedia
上传媒体文件便捷方法,从WeChatWorkThreadExtra获取accessToken- Parameters:
file
- 要上传的文件weChatWorkExtra
- 企业微信配置- Returns:
- 上传结果响应
-
determineMediaType
根据文件名判断媒体类型- Parameters:
fileName
- 文件名- Returns:
- 媒体类型:图片(image)、语音(voice)、视频(video)、普通文件(file)
-
downloadMedia
下载临时素材媒体文件- Parameters:
accessToken
- 企业微信访问令牌mediaId
- 媒体文件ID- Returns:
- 下载的文件字节数组
-
downloadMediaToFile
下载临时素材媒体文件并保存到本地- Parameters:
accessToken
- 企业微信访问令牌mediaId
- 媒体文件IDsavePath
- 保存路径- Returns:
- 保存的文件对象
-
downloadMediaToTempFile
下载临时素材媒体文件并保存到临时目录- Parameters:
accessToken
- 企业微信访问令牌mediaId
- 媒体文件IDfileExtension
- 文件扩展名(如 .jpg, .mp3 等)- Returns:
- 保存的临时文件对象
-
uploadImage
上传图片获取永久URL- Parameters:
accessToken
- 企业微信访问令牌file
- 要上传的图片文件- Returns:
- 上传结果响应
-
uploadMediaByUrl
public WeChatWorkUploadResponse uploadMediaByUrl(String accessToken, int scene, String type, String filename, String url, String md5) 异步上传临时素材- Parameters:
accessToken
- 企业微信访问令牌scene
- 场景值,目前仅支持1-客户联系入群欢迎语素材type
- 媒体文件类型,目前仅支持video和filefilename
- 文件名url
- 文件CDN URLmd5
- 文件MD5值- Returns:
- 上传结果响应
-
getUploadByUrlResult
查询异步上传任务结果- Parameters:
accessToken
- 企业微信访问令牌jobid
- 任务ID- Returns:
- 任务结果响应
-
validateFileSize
验证文件大小是否符合限制- Parameters:
file
- 文件mediaType
- 媒体类型- Returns:
- 是否符合限制
-
validateFileType
验证文件类型是否符合要求- Parameters:
file
- 文件mediaType
- 媒体类型- Returns:
- 是否符合要求
-