这篇文章来介绍一下通过使用插件实现将 WordPress 的媒体库附件存储在腾讯云 COS 上。
腾讯云 COS 具有高扩展性、低成本、可靠和安全等特点,将媒体库附件保存在 COS 上有以下好处:
配置管理
基础配置
,查看访问域名并记录 /wp-admin/plugin-install.php
,安装插件wp-content/plugins
,然后在后台启用Sync QCloud COS
进行安装(推荐使用)腾讯云COS
,点击进入设置页面,配置说明见下表配置项 | 配置值 |
---|---|
存储桶名称 | 创建存储桶时自定义的名称 |
存储桶地域 | 创建存储桶时所选择的地域 |
APP ID | 开发商 APPID,创建存储桶时名称后的 ID |
SecretID | 前往「云 API 密钥」进行获取 |
SecretKey | 前往「云 API 密钥」进行获取 |
不上传缩略图 | 勾选后不会上传对应的缩略图文件,建议不勾选 |
不在本地保留备份 | 勾选后不会在本地保留原文件,建议不勾选 |
本地文件夹 | 本地保存路径,例 |
不在本地保留备份 | 勾选后不会在本地保留原文件,建议不勾选 |
URL 前缀 | COS 访问域名/本地文件夹,例 |
如果以上是成功的,那么就需要同步旧资源到 COS 存储桶当中,可以使用 COSCLI,否则后台无法正常预览旧资源;
COSCLI 是使用 Go 语言开发,部署方便,且支持跨桶操作。
COSCLI 工具提供 Windows、Mac、Linux 操作系统的二进制包,通过简单的安装和配置后即可使用。
当前版本号为 v0.16.0-beta,如需获取工具的最新版本、历史版本和更新日志,请前往 GitHub 进行查看。
根据自己需要在什么环境下使用进行下载,这里以 macOS 为例,其他环境可以参考文档
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-mac
mv coscli-mac /usr/local/bin/coscli
chmod 755 /usr/local/bin/coscli
$ coscli -v
coscli version v0.16.0-beta
看到了version
的输出表示安装成功。
在 macOS 系统下使用 COSCLI 时,若弹出
无法打开“coscli”,因为无法验证开发者
的提示,可以前往设置 > 安全性与隐私 > 通用
中选择仍要打开 coscli
,之后即可正常使用 COSCLI。
可以使用coscli --help
命令来快速查看 COSCLI 的使用方法。在第一次使用时,执行coscli
命令,会进行初始化配置,需要输入Secret ID
等信息,按步骤填写完成后,COSCLI 会默认在~/.cos.yaml
的位置生成配置文件
$ coscli
2023/09/06 17:11:46 Welcome to coscli!
When you use coscli for the first time, you need to input some necessary information to generate the default configuration file of coscli.
The path of the configuration file: /Users/lufei/.cos.yaml
Input Your Secret ID:
后期也可以使用coscli config init
命令在其他位置为 COSCLI 交互式地生成配置文件,或者可以直接手动编写 COSCLI 的配置文件。
配置文件中各配置项的说明如下:
配置项 | 说明 |
---|---|
Secret ID | 密钥 ID,可从 访问管理控制台 中创建并获取。 |
Secret Key | 密钥 Key,可从 访问管理控制台 中创建并获取。 |
Session Token | 临时密钥 token,当使用临时密钥时需要配置,若不使用可以直接按 |
APP ID | |
Bucket Name | 存储桶名称,和 APP ID 一起构成存储桶全称,格式为 |
Bucket Region | 存储桶所在地域,详情请参见 地域与访问域名。 |
Bucket Alias | 存储桶别名,配置后可以在使用时用 |
配置完成后可以查看~/.cos.yaml
文件,可以看到类似如下内容:
$ cat ~/.cos.yaml
cos:
base:
secretid: xxxxx
secretkey: xxxxx
sessiontoken: xxxxx
protocol: https
buckets:
- name: sy-records-85464277
alias: sy-records-85464277
region: ""
endpoint: cos.ap-shanghai.myqcloud.com
secretid/secretkey/sessiontoken 均为加密后的字符串,不是明文配置的值。
如果需要支持多个存储桶,可以使用coscli config add
命令添加存储桶配置。
COSCLI 支持以下命令:
$ coscli --help
Welcome to use coscli!
Usage:
coscli [flags]
coscli [command]
Available Commands:
abort Abort parts
bucket-tagging Modify bucket tagging
config Init or edit config file
cp Upload, download or copy objects
du Displays the size of a bucket or objects
hash Calculate local file's hash-code or show cos file's hash-code
help Help about any command
ls List buckets or objects
lsparts List multipart uploads
mb Create bucket
rb Remove bucket
restore Restore objects
rm Remove objects
signurl Gets the signed download URL
sync Synchronize objects
Flags:
-c, --config-path string config file path(default is $HOME/.cos.yaml)
-e, --endpoint string config endpoint
-h, --help help for coscli
-i, --secret-id string config secretId
-k, --secret-key string config secretKey
-t, --session-token string config sessionToken
-v, --version version for coscli
Use "coscli [command] --help" for more information about a command.
这里介绍一下cp
和sync
命令
与 cp 命令不同的是:sync 命令首先会对比同名文件的 crc64,如果 crc64 值相同则不进行传输。
这两个命令在上传和下载大文件时会自动启用并发上传/下载。当以分块形式上传/下载文件时,会默认开启断点续传。
以迁移 WordPress 为例,可以使用如下命令将 WordPress 的媒体库上传到 COS 中,其中 /yourpath/wp-content/uploads
就是你的 WordPress 站点目录本地的媒体库存储路径,而 wp-content/uploads
就是存放在 COS 中的路径。
coscli cp /yourpath/wp-content/uploads/ cos://bucket1/wp-content/uploads/ -r
coscli cp /yourpath/wp-content/uploads/ cos://bucket1/wp-content/uploads/ -r --include .*.mp4
coscli cp /yourpath/wp-content/uploads/ cos://bucket1/wp-content/uploads/ -r --exclude .*.md
如果出现了某些异常,或者手动停止掉后,想要重新上传,可以使用sync
,该命令会对比同名文件的 crc64,如果 crc64 值相同则不进行传输。
coscli sync /yourpath/wp-content/uploads/ cos://bucket1/wp-content/uploads/ -r
更多关于 COSCLI 的使用方法请查看官网文档介绍
同步完成以后,可以开启回源设置,参考下文的设置回源。
https://qq52o.me/
新域名填写现在的资源域名,如https://img.qq52o.me/
No 'Access-Control-Allow-Origin' header is present on the requested resource
原因是没有添加 header 需要你的 COS 源的 CDN 中添加 HTTP Header 配置
Access-Control-Allow-Origin:*
或者只允许你自己的域名
Access-Control-Allow-Origin:https://qq52o.me
在存储桶的基础设置中设置 跨域访问CORS
,详细请查看对应文档 设置跨域访问
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有