开发日志
2022-05-23
开发进度
- 测试官方api
- 详细浏览了官方api的文档
- 调用次数
- 收费
- 具体调用方式
- 错误代码
- 错误处理
- 了解具体调用api需要准备什么样的环境和准备什么参数
遇到的问题
- 国内访问官方api较慢
- 因为jwt-token的期限为24小时,需要开发一个自动续期的功能
2022-05-24
开发进度
- 搭建
aws-s3
存储桶- 将存储桶权限完全公开✔
- 上传所有效果确认文件,测试文件✔
- 配置存储桶权限策略✔
- 开始编写测试官方api接口的相关代码
- 优先测试智能对象接口
https://image.adobe.io/pie/psdService/smartObject
- 优先测试智能对象接口
遇到的问题
暂时无法得知adobe是如何获取存储桶内文件
- 如果是重新下载,那么估计文件越大,下载越久
首次调用替换只能对象接口遇到无法下载文件的问题
4924c8cb-cd01-41a7-b177-efef4ae578de failed
{
"jobId": "4924c8cb-cd01-41a7-b177-efef4ae578de",
"outputs": [
{
"input": "https://test-bucket-psd-tools.s3.amazonaws.com/test.psd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVUGBJ4H3EN3G5VJQ%2F20220524%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220524T094302Z&X-Amz-Expires=900&X-Amz-Signature=bc3a582afe764600e8376a5e9f867dd0025d9a01a816320dce4377990614c654&X-Amz-SignedHeaders=host",
"status": "failed",
"created": "2022-05-24T09:43:02.633Z",
"modified": "2022-05-24T09:43:02.765Z",
"errors": {
"code": 404,
"details": [
{
"name": "https://test-bucket-psd-tools.s3.amazonaws.com/test_replace.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVUGBJ4H3EN3G5VJQ%2F20220524%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220524T094302Z&X-Amz-Expires=900&X-Amz-Signature=7e1bde42674307fd6b89c10a910f64726baacbbd7182e1f6732b063acede6a19&X-Amz-SignedHeaders=host",
"reason": "Unable to download the input href"
}
],
"title": "Asset Not Found",
"type": "FileExistsErrors"
}
}
],
"_links": {
"self": {
"href": "https://image.adobe.io/pie/psdService/status/4924c8cb-cd01-41a7-b177-efef4ae578de"
}
}
}
[Finished in 11.9s]
2022-05-25
开发进度
添加自动注册官方api请求密钥的功能✔
添加
keys.json
请求密钥的存储格式✔完善调用官方智能对象接口的业务功能✔
查找最快调用官方接口的区域服务器(太花时间,后面再做)
遇到的问题
官方接口调用速度较慢
测试环境1 中国南方服务器 + 美国东部(弗吉尼亚北部)S3存储桶
替换单个图层(智能对象):
// 测试功能:替换智能对象中1个像素图层
// replace one pixel layer in smartobject
// 小图文件 - 22.9 MB 72DPI
// 平均时间 - 2.8秒
function run in: (2791 ms)
function run in: (2768 ms)
function run in: (2856 ms)
function run in: (2800 ms)
function run in: (2820 ms)
// 大图文件 - 118.5 MB 300DPI
// 平均时间 - 4.5秒
function run in: (4477 ms)
function run in: (4542 ms)
function run in: (4515 ms)
function run in: (4502 ms)
function run in: (4529 ms)
同时替换四个图层(智能对象):
// 测试功能:同时替换智能对象中4个像素图层
// replace four pixel layers in smartobject
// 小图文件 - 22.9 MB 72DPI 500x500
// 平均时间 - 4.4秒
function run in: (4823 ms)
function run in: (3850 ms)
function run in: (3780 ms)
function run in: (3721 ms)
function run in: (3788 ms)
function run in: (3945 ms)
https://test-bucket-psd-tools.s3.amazonaws.com/output_small.jpg
// 大图文件 - 118.5 MB 300DPI 2400x2400
// 平均时间 - 8.0秒
function run in: (8478 ms)
function run in: (8511 ms)
function run in: (7439 ms)
function run in: (7747 ms)
function run in: (7516 ms)
function run in: (7547 ms)
https://test-bucket-psd-tools.s3.amazonaws.com/output_big.jpg
2022-05-26
开发进度
开始搭建测试服务器
项目目录结构
日志
接口文档
jwt
权鉴暂定
python3.10
和最新的fastAPI
本次项目的web框架
添加本地图片合成功能编写
尝试创建adobe官方的云服务器来试调api(失败,后面有空再弄)
发送邮件询问官方昨天测试的速度是否正常情况
遇到的问题
- 为了解决昨天调用官方接口慢的问题,今天大半天时间都花在注册官方云服务器,尝试用不同的服务器存储文件,暂时申请没下来,官方审核比较严格
- 继续探究官方api处理慢的原因
2022-05-27
开发进度
继续搭建测试服务器
定义接口请求体(结构和校验)
接口编写
# 查询文件所有信息
host:port/v1/psd?file_name=xxxx
host:port/v1/psd/{file_name}
# 查询文件指定图层名
host:port/v1/psd/{file_name}/later/{layer_name}
# 上传
host:prot/v1/psd/upload
# 合成
host:port/v1/psd/meger/{file_name}?
layer_name="图层名称"&
layer_content="修改的内容"&
layer_font="图层字体"
编写预处理相关功能业务代码
- 重构之前的demo代码进行
遇到的问题
- 上午官方还没有回复我的邮件
第一周总结
开发进度
- 目前进度周六完成psd预处理和文件上传
- 周日能部署在线的测试接口
遇到的问题
- 目前尚无法注册官方的云存储服务
需要确认
客户的psd文件图层命名是否有规律,如果有请联系客户将相关规律写成文字,总结一份。目前看到很多图层都是以
__xxx__
和DYNAMIC
命名。如果能明确这些命名规律,或者定制一份命名关系,那么对psd文件预处理时会提高很多效率。
2022-05-28
开发进度
- 开发预处理功能
- 添加上传功能
- 搭建测试服务器
遇到的问题
- 一些置入类图层无法通过程序识别它与其他图层的关系,最好能通过图层组明确分类
- 定制了一套分类规则
- adobe官方关于接口请求慢的问题没有回信
2022-05-29
开发进度
- 继续开发预处理功能
- 添加到服务器后台执行
- 测试服务器添加内网穿透,搭建到工作站
2022-05-30
开发进度
- 主要搭建和试调测试服务器
2022-05-31
开发进度
- 预处理功能加入到测试服务器中
- 开放文件上传接口
- 开放预处理接口
- 测试服务器上线
2022-06-01
开发进度
- 完善文字替换功能(本地调用ps)
- 完善字体替换功能(本地调用ps)
- 预处理导出每个图层
遇到的问题
部分不是通过文字工具创建的文字图层无法正确的获取文字大小
- 用py获取失败
- 用原生插件的形式获取也是不一致
2022-06-02
开发进度
- 调试文字替换功能(官方api)
- 调试字体替换功能(官方api)
遇到的问题
- 官方api的延迟非常大
2022-06-04
开发进度
- 完善文字图层替换功能
- 定制psd文件的结构规范
- 加入智能对象内容修改功能(本地调用ps)
- 加入字体替换功能(本地调用ps)
- 加入像素图层图片替换功能(本地调用ps)
- 加入多图层共用同一智能对象替换图片功能(本地调用ps)
第二周总结
开发进度
- 以本地调用ps来完成接口功能的逻辑基本完成,无论从延迟还是速度都比调用官方api块,所以先上线到测试服务器
- 官方调用api因为延时等问题,还需要调式,暂不部署到测试服务器
- 测试服务器可用的功能:
- 上传文件
- 修改文字图层内容
- 修改文字图层字体
- 修改智能对象(单个或多个都可以)
遇到的问题
- psd文件某些文字图层无法正确识别
- 官方api修改文字,修改字体的延迟大,比处理智能对象稍好一点
需要确认
- 附件1 一些psd文件的规范,如果根据这些规范,可以大大提高接口性能
- 调用官方api的延迟大问题可能会导致后面开发时间要增加
2022-06-5
开发进度
- 预处理接口对客户提供的所有文件进行测试
遇到的问题
- 如果文件缺少字体,ps会被卡住
- 如果调用官方api的时候不传字体,也会调用失败
2022-06-06
2022-06-07
开发进度
- 测试接口上线
- 完善字体替换
- 完善文字替换
- 完善图片替换
遇到的问题
- 图片替换后尺寸无法自动铺满
2022-06-08
开发进度
- 一次修改多个图层
- 添加字体大小通过百分比修改
- 多种格式导出支持:jpg|png|tiff|pdf|psd
- 添加修改图片尺寸
- 添加修改图片dpi
2022-06-09
开发进度
- 添加文件规范,所有非智能对象的文字图层均不作文字大小修改的响应
- 优化官方接口逻辑
- 优化替换图片功能的逻辑
- 添加自动续期功能到接口内
2022-06-10
开发进度
- 完善官方api的相关功能
- 智能对象修改
- 文字图层修改
- 添加上传文件到存储桶(官方APi)
- 添加预处理二级队列,不与接口抢占资源
- 优化本地调用ps api的速度
2022-06-11
开发进度
- 优化项目整体框架
- 对客户提供的所以文件进行详细测试
- 编写使用说明文档
遇到的问题
第三周总结
2022-06-12
开发进度
- 优化项目
- 编写、完善接口的使用文档
- 尝试添加ai文件解析功能
2022-06-13
开发进度
- 完善、设计部署方案
- 编写部署文档