如何 Wordpress 使用 OSS 上传图片、文件

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 如何使用 OSS 上传 Wordpress 的图片文件

准备

  • 可访问的 wordpress 站点
  • OSS

操作

1、OSS 相关

创建 Bucket 取名为 wordpress-test1 ,按照控制台指引填入其他的信息,点击确定即可:

创建完成后,进入到 Bucket 详情,点击 Bucket 配置>域名管理 绑定 OSS 访问域名:

输入域名后,阿里云会自动检测域名的管理是否也在阿里云,如果域名管理也在阿里云,开启自动添加 CNAME 记录会自动帮你做解析处理。如果没有可以到对应的域名管理控制台自行添加,这里不再赘述。

为了访问速度更快,这里还需要配置一下 CDN 。在添加域名成功后点击第二列的阿里云 CDN 加速,然后会自动跳转到 CDN 创建页面,参考控制台步骤创建即可:

最后一步,创建完成后到域名解析里面找到刚刚绑定的域名,将域名解析到 CDN 对应的 CNAME 即可。

2、设置 Ram 用户访问 OSS

进入到 访问控制 控制台,创建新用户或者选择已有用户,为其分配 OSS 的使用权限:

回到 认证管理 页面,如果没有 AccessKey 的话可以创建一个。这个 key 和 secret 用于后面 wordpress 插件配置使用,请保存好。

3、安装 OSS 上传插件

进入到 wordpress 的管理后台,进入 插件>安装插件 ,在搜索框中输入 oss 进行搜索,然后选择 “WPOSS阿里云对象存储”这个插件进行安装。

启用刚安装的扩展,进行设置:

设置完成后保存,进入到 wordpress 的媒体库页面可实验一下是否可用。

如上图,上传成功后图片可正常显示,并且在 文件URL 中的连接为绑定的 OSS 域名,红框中的路径为上面配置中填写的路径。

4、上传插件问题

插件使用后,会发现上传的文件为图片的各个尺寸的缩略图,如下图的文件名,但是该图片的原始图片并没有在目录中,这就导致在 wordpress 中使用原图的时候会出现图片找不到的情况。

对插件的源代码进行了一下修改,进入到文件 wp-content/plugins/wposs/index.php ,找到 upload_and_thumbs 方法,将代码改为如下内容:

/**
 * 上传图片及缩略图
 * @param $metadata: 附件元数据
 * @return array $metadata: 附件元数据
 * 官方的钩子文档上写了可以添加 $attachment_id 参数,但实际测试过程中部分wp接收到不存在的参数时会报错,上传失败,返回报错为“HTTP错误”
 */
public function upload_and_thumbs( $metadata ) {
    //新增修改内容 ------ start
    if (isset( $metadata['original_image'] )) {
        # 1.原始图片
        $attachment_key =  dirname($metadata['file']) . '/' .$metadata['original_image'];  // 远程key路径, 此路径不是以/开头
        $attachment_local_path = $this->wp_upload_dir['basedir'] . '/' . $attachment_key;  # 在本地的存储路径
        $this->_file_upload($attachment_key, $attachment_local_path);  # 调用上传函数
    }
    //新增修改内容 ------ end
    if (isset( $metadata['file'] )) {
        # 1.先上传主图
        $attachment_key = $metadata['file'];  // 远程key路径, 此路径不是以/开头
        $attachment_local_path = $this->wp_upload_dir['basedir'] . '/' . $attachment_key;  # 在本地的存储路径
        $this->_file_upload($attachment_key, $attachment_local_path);  # 调用上传函数
    }
    # 如果存在缩略图则上传缩略图
    if (isset($metadata['sizes']) && count($metadata['sizes']) > 0) {
        foreach ($metadata['sizes'] as $val) {
            $attachment_thumbs_key = dirname($metadata['file']) . '/' . $val['file'];  // 生成object 的 key
            $attachment_thumbs_local_path = $this->wp_upload_dir['basedir'] . '/' . $attachment_thumbs_key;  // 本地存储路径
            $this->_file_upload($attachment_thumbs_key, $attachment_thumbs_local_path);  //调用上传函数
        }
    }
    return $metadata;
}

由此即可解决原图无法上传的问题。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
3月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之上传素材文件不在同一地域的OSS,怎么上传多张图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
42 1
|
3月前
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在使用MaxCompute进行数据集成同步到OSS时,出现表名和OSS文件名不一致且多了后缀,该如何处理
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
4月前
|
运维 Serverless 对象存储
函数计算产品使用问题之如何配合OSS实现接口收到的图片或文件直接存入OSS
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之如果oss文件过大,如何在不调整oss源文件大小的情况下优化查询sql
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
分布式计算 DataWorks 数据管理
DataWorks操作报错合集之使用OSS读取CSV文件到ODPS时遇到报错,一般是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
编解码
WordPress页面文件添加html后缀名
wordpress 页面默认不能实现伪静态链接,手动在链接中添加 “.html” ,会自动转码为 “-html” ,但万能的 WordPress,你能想到的功能都会有相应的插件帮你实现。
43 0
|
5月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之在调用接口传入的图片URL参数,文件在本地或者非上海地域OSS链接,该怎么办
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
5月前
|
Java 对象存储
阿里云OSS上传下载文件java
阿里云OSS上传下载文件java
321 0

相关产品

  • 对象存储