Skip to main content

开发日志

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请求密钥的存储格式✔

  • 完善调用官方智能对象接口的业务功能✔

  • 查找最快调用官方接口的区域服务器(太花时间,后面再做)

遇到的问题

  • 官方接口调用速度较慢

    image-20220525165643153

测试环境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

开发进度

  • 开始搭建测试服务器

    • 项目目录结构

      image-20220527112551602

    • 日志

    • 接口文档

    • jwt权鉴

    • 暂定python3.10和最新的fastAPI本次项目的web框架

  • 添加本地图片合成功能编写

  • 尝试创建adobe官方的云服务器来试调api(失败,后面有空再弄)

  • 发送邮件询问官方昨天测试的速度是否正常情况

    image-20220526180658742

遇到的问题

  • 为了解决昨天调用官方接口慢的问题,今天大半天时间都花在注册官方云服务器,尝试用不同的服务器存储文件,暂时申请没下来,官方审核比较严格
  • 继续探究官方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代码进行

遇到的问题

  • 上午官方还没有回复我的邮件

第一周总结

image-20220527180645635

开发进度

  • 目前进度周六完成psd预处理和文件上传
  • 周日能部署在线的测试接口

遇到的问题

  • 目前尚无法注册官方的云存储服务

需要确认

  1. 客户的psd文件图层命名是否有规律,如果有请联系客户将相关规律写成文字,总结一份。目前看到很多图层都是以 __xxx__DYNAMIC命名。如果能明确这些命名规律,或者定制一份命名关系,那么对psd文件预处理时会提高很多效率。

    image-20220527175208522

2022-05-28

开发进度

  • 开发预处理功能
  • 添加上传功能
  • 搭建测试服务器

遇到的问题

  • 一些置入类图层无法通过程序识别它与其他图层的关系,最好能通过图层组明确分类
    • 定制了一套分类规则
  • adobe官方关于接口请求慢的问题没有回信

2022-05-29

开发进度

  • 继续开发预处理功能
    • 添加到服务器后台执行
  • 测试服务器添加内网穿透,搭建到工作站

2022-05-30

开发进度

  • 主要搭建和试调测试服务器

2022-05-31

开发进度

  • 预处理功能加入到测试服务器中
  • 开放文件上传接口
  • 开放预处理接口
  • 测试服务器上线

2022-06-01

开发进度

  • 完善文字替换功能(本地调用ps)
  • 完善字体替换功能(本地调用ps)
  • 预处理导出每个图层

遇到的问题

  • 部分不是通过文字工具创建的文字图层无法正确的获取文字大小

    • 用py获取失败
    • 用原生插件的形式获取也是不一致

    image-20220601171738175

2022-06-02

开发进度

  • 调试文字替换功能(官方api)
  • 调试字体替换功能(官方api)

遇到的问题

  • 官方api的延迟非常大

2022-06-04

开发进度

  • 完善文字图层替换功能
  • 定制psd文件的结构规范
  • 加入智能对象内容修改功能(本地调用ps)
  • 加入字体替换功能(本地调用ps)
  • 加入像素图层图片替换功能(本地调用ps)
  • 加入多图层共用同一智能对象替换图片功能(本地调用ps)

第二周总结

image-20220605002642081

开发进度

  • 以本地调用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

开发进度

  • 完善、设计部署方案
  • 编写部署文档