AEM 导入助手
帮助将您的网站导入AEM的同伴.
特征
安装
最好是作为非依赖性,但也可以在全球使用:
npm install @adobe/aem-import-helper --save-dev
进口的前提条件
设置您的环境变量( 无论是在 shell 配置文件中还是在 .env 文件名 :
export AEM_IMPORT_API_KEY=your-import-api-key
将 npm 脚本项添加到您的边际传送项目 package.json数字 :
"import": "aem-import-helper import"
使用量
进口有两种类型:基于文档的AEM授权(xwalk). 关于每种类型的更多信息,请参见以下各节.
两种导入类型都需要包含所有URL列表的文件来导入,每行一个. 创建一个文件( 取名为 “ urls. txt ”) , 并将 URL 添加到此文件 .
基于文档的导入
默认导入基于 doc, 仅提供urls.txt文件和导入.js文件 .
通过下列命令执行导入:
npm run import -- --urls ./urls.txt --importjs tools/importer/import.js
这个 import.js 您提供的文件将自动被捆绑并作为一个 Service API 发送给导入,因此支持引用其它本地脚本(如变压器) 。 我们为什么要捆绑进口文件? 见下文关于 捆绑多个导入脚本 更多细节.
完成后,将打印出一个预先签名的URL从S3下载导入结果(作为.zip存档)到将包含所生成文件的控制台.
共享点上传
任择 m365 立方厘米 可以安装和配置,将导入结果上传到SharePoint.
你会需要你的 tenantId 编辑 clientId 页:1 微软 Entra 应用程序 (在您的SharePoint上) 设置 CLI :
m365 setup
m365 login
从SharePoint复制一个链接到您想要上传到的目录 。 这可以从SharePoint Web UI,通过"Copy链接"按钮实现.
您的新链接形式如下: https://example.sharepoint.com/:f:/r/sites/example/Shared%20Documents/destination-directory
已登录到 sharePoint 的 m365 CLI,将SharePoint链接作为参数传递给aem-import-helper:
npm run import -- --urls urls.txt --sharepointurl https://example.sharepoint.com/:f:/r/sites/example/Shared%20Documents/destination-directory
导入工作完成后,从S3中下载出导入结果,并上传到指定的SharePoint目录.
AEM 写入( 十字路口) 导入
要进行跨行导入, 您需要提供引用的附加参数 。 模型、过滤器和定义文件
所需经费。 您还必须指定导入 type 作为 xwalk 和提供 siteName 财务报告和审定财务报表 assetFolder。 。 。 .
npm run import -- \
--urls urls.txt \
--importjs tools/importer/import.js \
--options '{
"type": "xwalk",
"data": {
"siteName": "xwalk",
"assetFolder": "xwalk"
}
}' \
--models ./component-models.json \
--filters ./component-filters.json \
--definitions ./component-definition.json
完成后,将打印出一个预先签名的URL从S3下载导入结果(作为.zip存档)到将包含所生成文件的控制台.
向 AEM 导入内容
将以下 npm 脚本条目添加到您的边框交付项目 package.json数字 :
"aem-upload": "aem-import-helper aem upload"
aem-upload:将内容包和相关资产上传到AEM.
正在使用 AEM 认证
为了认证AEM, 建议您获取您的AEM环境的开发标志 。 为了做到这一点, 通过 Cloud 管理器访问您 AEM 作者环境中的开发者控制台。 关于访问的细节 开发者控制台,参见 AEM 作为云服务文档 财务报告和审定财务报表 开发者流程 学习如何生成 Access Token .
一次进入开发者控制台 :
- 点击集成
- 点击本地令牌
- 点击获取本地开发键
注:开发标志只有效24小时.
您可以在本地机器上的文件里存储此令牌, 或者通过令牌作为 cli 参数 . 如果您选择在文件中存储符号,则创建一个文件,并简单地将符号粘入到文件中并保存.
--token </path/to/token.txt> OR <token>
上传内容到 AEM
运行以下命令将内容包(JCR页面)和相关资产上传到您的 AEM 作者 :
npm run aem-upload -- \
--token token.txt \
--zip /path/to/zip.zip \
--asset-mapping /path/to/asset-mapping.json \
--target https://author-p1234-e1234.adobeaemcloud.com
要求 :
- 符号: 包含由 AEM 作者环境生成的符号的文件的绝对路径,或符号值.
- 拉链: 包含JCR页面的内容包ZIP文件的绝对路径,由导入工具生成.
- 目标:目标AEM作者环境URL.
- 资产测绘: 如果
--skip-assets未提供或设定为真实,资产映射文件必须是绝对路径 到资产映射文件( e)asset-mapping.json),包含资产urls及其相应的JCR路径的映射.
可选 :
- 产出 [默认='aem-assets']: 下载资产将存储的输出文件夹的绝对路径 .
- 保留 [default=false]:执行后将所下载的资产保存在输出文件夹中. 没有它,文件夹下
资产下载写入的输出文件夹(每个顶级的 DAM 文件夹,例如 。).
<output>/xwalk)和 直接下载的资产/content/dam一旦安装了内容包,则删除。 如果输出 文件夹不存在,将全部删除。 如果有些资产上传失败, 内容包仍被安装 , 下载后的资产被保存起来,这样上传就可以重新测试,命令退出则处于非零状态. - 跳动资产 [default=false]:跳过上传资产到AEM. .
- 资产测绘: 只有在 --skip- assets 属实时才有可选性 .
- 图像到 png [默认=真实]: 真实时,在上传前将已下载的图像资产转换为PNG(JPEG,PNG,GIF,ICO,SVG,MP4除外).
- 当地资产: 本地资产文件夹的路径。 提供后,资产通过完整的DAM路径在当地解决,然后回到远程下载中处理任何缺失的文件. 文件夹结构必须映射 DAM 路径( 例如 ),
<local-assets>/content/dam/site/image.jpg) (中文(简体) ).
命令执行后,内容包和相关资产会被上传到您的 AEM 作者环境. 内容包被安装,资产被上传到DAM.
将内容导入到 DA
将以下 npm 脚本条目添加到您的边框交付项目 package.json数字 :
"da-upload": "aem-import-helper da upload"
da-upload: 上传内容包和相关资产到DA.
正在使用 DA 认证
与 DA 认证, 建议您获取一个 IMS 访问令牌 。 见 IMS API 参考文献 学习如何生成 Access Token .
您可以在本地机器上的文件里存储此令牌, 或者通过令牌作为 cli 参数 。 如果您选择在文件中存储符号,则创建一个文件,并简单地将符号粘入到文件中并保存.
--token </path/to/token.txt> OR <token>
上传内容到作者总线
运行以下命令将内容( HTML 页面) 和相关资产上传到您的 DA env :
npm run da-upload -- \
--token token.txt \
--org myDaOrg\
--site myDaSite\
--asset-list /path/to/asset-list.json \
--da-folder /path/to/da/folder \
--output /path/to/download/folder
要求 :
- 奥尔格: 您 DA 项目的组织名称 。 这是您 DA URL 路径的第一部分( 例如, 从
https://da.live/#/geometrixx/outdoors,该矿石将是geometrixx) (中文(简体) ). - 站点:您组织内的网站名称。 这是您 DA URL 路径的第二部分( 例如, 从
https://da.live/#/geometrixx/outdoors收回会是outdoors) (中文(简体) ). - da-文件夹绝对路径
da包含 HTML 页面的文件夹,由导入者生成. - 资产清单: 资产列表文件的绝对路径( Y)
asset-list.json),包含资产urls列表,以及站点来源信息.
资产列表.json 格式 :
{
"assets": [
"https://example.com/image1.jpg",
"https://example.com/image2.png",
"https://example.com/document.pdf"
],
"siteOrigin": "https://example.com"
}
说明:图像和非图像资产处理方式不同. 图像存储在页面特定的阴影(.dot)文件夹中,而非图像介质(PDFs,docs)则存储在 shared-media 每页父目录下的文件夹.
可选 :
- 符号: 包含您 DA 环境的 IMS 令牌的文件的绝对路径, 或令牌值 .
- 产出 [默认='da-content']: 将存储 DA 内容( 页面、 资产等) 的输出文件夹的绝对路径 .
- 保留 [default=false]:在上传后保留所下载的资产并在当地更新HTML,而不是清理.
- 图像到 png [默认=真实]: 真实时,在上传前将已下载的图像资产转换为PNG(JPEG,PNG,GIF,ICO,SVG,MP4除外).
- 当地资产: 本地资产文件夹的绝对路径。 该工具一旦提供,将首先试图从本地文件夹复制资产 。 如果在本地找不到资产,则会回到下载
siteOrigin。当:- HTML 页面有本地( 相对) 资产引用
- 当地已有资产
- 您想要避免重新下载已有的资产
虚假时保留原始图像格式并用原始扩展名更新引用. 只有在您知道您的图像被 DA 支持时才会使用此选项 .
使用当地资产:
使用时 --local-assets 带有本地文件夹路径的旗帜 :
npm run da-upload -- \
--org myDaOrg \
--site myDaSite \
--asset-list /path/to/asset-list.json \
--da-folder /path/to/da/folder \
--local-assets /path/to/local/assets/folder
该工具将:
- 试图先使用本地文件夹中的资产
- 如果本地找不到资产, 则返回原址下载
- 上传所有已解析的资产到 DA
- 照常更新 HTML 引用
- 上传更新的 HTML 页面
asset-list.json 在这种情况下,应提及资产 相对于 --local-assets 文件夹数字 :
{
"assets": [
"./hero/banner.jpg",
"./team/john-smith.png",
"/documents/brochure.pdf"
],
"siteOrigin": "http://adobe.com"
}
示例本地资产文件夹结构 :
/path/to/local/assets/ <- This is your --local-assets folder
├── hero/
│ └── banner.jpg
├── team/
│ └── john-smith.png
└── documents/
└── brochure.pdf
命令执行后,HTML页面和相关资产被上传到Author Bus.
资产参考战略
该工具处理图像和非图像资产的方式不同,以优化DA/Edge交付服务:
图像 (JPG、PNG、GIF等):
- 存储在每页相邻的阴影文件夹中
- 通过
https://content.da.live/...路径. - 示例: 页 次
intro.html• 图像参考https://content.da.live/aemysites/mySite/about-me/.intro/photo.jpg
非图像媒体 (PDF,其他媒体等):
- 存放于a
shared-media页面父目录下的文件夹 - 通过边缘交付预览 URL 引用
- 示例: PDF 存储于
about-me/shared-media/resume.pdf- 称为https://main--mySite--aemysites.aem.page/about-me/shared-media/resume.pdf内部intro.html。 。 。 .
上传性能 : 该工具通过平行处理每个页面内的资产来优化上传性能(最多50个同时上传),同时尊重CDN同时请求的限制.
Page 1 → Download Assets (parallel) → Upload Assets (max 50 parallel) → Upload HTML →
Page 2 → Download Assets (parallel) → Upload Assets (max 50 parallel) → Upload HTML →
Page 3 → ...
捆绑多导入脚本
通过创建您导入脚本的捆绑版本,它使它与导入服务兼容,因为所有的脚本都需要在一个js文件中.
将 npm 脚本项添加到您的边际交付项目 package.json数字 :
"bundle": "aem-import-helper bundle"
运行脚本 :
npm run bundle -- --importjs tools/importer/import.js