shlinkio / shlink-importer
从不同来源导入链接并将其映射到shlink兼容格式的工具集合
Requires
- php: ^8.2
- ext-json: *
- laminas/laminas-servicemanager: ^3.22
- league/csv: ^9.14
- shlinkio/shlink-config: ^3.0 || ^2.5
- shlinkio/shlink-json: ^1.0
- symfony/console: ^7.0 || ^6.4
Requires (Dev)
- guzzlehttp/guzzle: ^7.8
- phpstan/phpstan: ^1.10
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^11.0
- psr/http-factory: ^1.0
- roave/security-advisories: dev-master
- shlinkio/php-coding-standard: ~2.3.0
- symfony/var-dumper: ^7.0 || ^6.4
Suggests
- psr/http-client: If you want to be able to import URLs from Bit.ly, YOURLS, Kutt.it or another Shlink instance
- psr/http-factory: If you want to be able to import URLs from Bit.ly, YOURLS, Kutt.it or another Shlink instance
README
从不同来源导入链接并将其映射到shlink兼容格式的工具集合。
安装
此模块可以使用composer安装
composer require shlinkio/shlink-importer
支持的导入来源
Bit.ly
使用API v4导入。唯一需要的参数是访问令牌。
只导入URL。尚未导入访问/点击(见#20)。
YOURLS
使用YOURLS API导入。然而,由于它缺少一些功能,需要在YOURLS中安装一个专用插件。
该插件涵盖了API中缺少的操作,允许Shlink列出URL及其所有访问。
它将导入短URL及其所有访问,但无法获取YOURLS未跟踪的信息(如地理位置)。
Kutt.it
使用Kutt API导入。
它将导入短URL,但不会导入它们的访问,因为Kutt.it不公开单个访问,而是提供聚合信息,这些信息与其UI相关联并使用相对时间。
Shlink
使用API v2从另一个Shlink实例导入。如果您想迁移到不同的主机或更改数据库引擎,则非常有用。
您将需要提供实例的基本URL和有效的API密钥。
它将导入短URL及其所有访问。然而,将无法重新计算这些访问的位置,因此请确保首先通过运行bin/cli visit:locate --retry
在原始实例上计算位置。
标准CSV
它解析包含“长URL”和“短代码”列的CSV文件。它还可以包含可选的“域名”、“标题”和“标签”,其中后者是管道分隔或逗号分隔的项目列表(例如foo|bar|baz
或foo,bar,baz
)。
如果提供“短URL”列,则可以支持它,在这种情况下,如果未明确提供,则将从其中推断出“短代码”和“域名”。
列名可以包含空格,并且可以包含大小写字母的任何组合。
由于该方法是一维的,因此不允许导入访问。
用法
该模块注册了short-url:import
命令,可用于从不同来源导入链接。
此命令需要提供要从中导入的来源
`bin/cli short-url:import bitly`
该命令将询问您有关如何从该来源导入的问题,然后,一旦数据到位,它将调用Shlinkio\Shlink\Importer\ImportedLinksProcessorInterface
服务。
要求
此包期望某些服务作为依赖项注册,因为它们需要由某些提供的工具使用。
Shlinkio\Shlink\Importer\ImportedLinksProcessorInterface
:必须解析实现该接口的对象。Psr\Http\Client\ClientInterface
:需要能够从Bit.ly、YOURLS、Kutt.it或另一个Shlink实例导入。Psr\Http\Message\RequestFactoryInterface
:需要能够从Bit.ly、YOURLS、Kutt.it或另一个Shlink实例导入。