完整电商项目--(六)商品模块(5):自定义文件存储系统 - fastdfs存储

Java电商项目面试--商品模块 面试:商品模块技术要点 1、POJO、BO、VO抽象模型 2、高效分页及动态排序 3、FTP服务对接、富文本上传 一、商品模块功能 前台功能: 1、产品搜索 2、动态排序列表 3、商品详情 后台功能: 1、商品列表 2、商品搜索 3、图片上传 4、增加商品、更新商品、商品上下架 二、后台新增和更新商品 Controller: @Controlle... 阅读详情

场景

  • 我们默认使用fastdfs 保存上传的文件(默认已经安装好fastdfs,不展开讲这些,先把django的业务实现)
  • 我们知道,fastdfs上传文件,会返回给我们一个 url链接,用来访问此文件
# 1. 导入FastDFS客户端扩展
from fdfs_client.client import Fdfs_client
# 2. 创建FastDFS客户端实例
client = Fdfs_client('meiduo_mall/utils/fastdfs/client.conf')
# 3. 调用FastDFS客户端上传文件发放
ret = client.upload_by_filename('/Users/zhangjie/Desktop/kk.jpeg')

ret = {
'Group name': 'group1',
'Remote file_id': 'group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg',
'Status': 'Upload successed.',
'Local file name': '/Users/zhangjie/Desktop/kk.jpeg',
'Uploaded size': '69.00KB',
'Storage IP': '192.168.103.158'
 }
 
ret = {
'Group name': 'Storage组名',
'Remote file_id': '文件索引,可用于下载',
'Status': '文件上传结果反馈',
'Local file name': '上传文件全路径',
'Uploaded size': '文件大小',
'Storage IP': 'Storage地址'
 }
当我们存储图片的时候:
  • 默认的文件存储是在本地磁盘上,这是不理想的,因为读取速度非常慢。 所以要是用fastdfs,分布式文件存储系统。 让他来帮我们存储文件。

  • 所以我们需要自定义文件存储系统,使文件通过 fastdfs存储。

怎么自定义文件存储系统?

  • 打开官方文档:编写自定义存储系统

  • 文档很清晰的描述了(我希望在这之前,你已经看那完了默认存储系统的文档资料,了解默认存储系统)
    在这里插入图片描述
    再来看一下 storage类:
    在这里插入图片描述
    在这里插入图片描述

  • fastdfs 响应的是:‘group1/M00/00/00/wKhnnlxw_gmAcoWmAAEXU5wmjPs35.jpeg’,这样的url,也就是说,我们在 模型类中 ImageField字段中,实际存储的就是这样的 字符串,而 文件本身通过存储系统,保存在其他地方。

  • 我们现在要做的就是重写一个 url方法,让他返回给我们的 文件路径是完整的,带上 域名:

from django.core.files.storage import Storage
from django.conf import settings

class FdfsStorage(Storage):
    def open(self, name, mode='rb'):
        pass
	# 这个方法,我们也可以改为上面的 fastdfs存储图片的方法
    def save(self, name, content, max_length=None):
        pass

    def url(self, name):
        return settings.FDFS_URL + name
基于FastDFS与Nginx的轻量级文件存储系统:从本地搭建到公网访问的完整实践 本文详细介绍了基于FastDFS与Nginx的轻量级文件存储系统的完整实践,包括本地部署、远程访问及性能优化。通过FastDFS的分布式文件系统与Nginx的高效代理组合,实现高并发、高可用的文件存储解决方案,特别适合管理大量静态资源且预算有限的场景。 阅读详情

相关推荐

亿级高并发电商项目-- 实战篇 --万达商城项目 八(安装FastDFS、安装Nginx、文件服务模块、文件上传功能、商品功能与秒杀商品等功能)

万达商城是一款常见的电商网站,项目采用前后端分离架构。前端 开发主要使用vue.js,后端使用Dubbo技术进行分布式调用。项目 包含电商系统的大部分功能,分为商家端和用户端。商家端有权限 管理、商品管理、广告管理等

1850

FastDFS修改文件存储目录

修改下面文件,相关参数为1,则最终只保留1个目录,目录为00/00。

core815的专栏 851

分布式文件存储与数据缓存 FastDFS

在互联网项目中,数据量早已达到亿级的今天,对于数据的存储以及提升查询效率已经是我们必须要面对的一个问题。本系列主要通过NoSQL技术实现高性能的数据处理,了解常见的内存型数据库实现热数据的高速缓存,用于提升热数据的查询效率。

,,,,,,, 2387

fastdfs文件系统增加自定义路径

fastdfs文件系统增加自定义路径(group1/M00、group1/M01...) 修改fastfds配置文件 vim /etc/fdfs/storage.conf # 挂载数量 store_path_count=2 # 挂载点1 store_path0=/data/fastdfs/file # 挂载点2 store_path1=/data/fastdfs/f...

刘军的博客 1万+

高性能分布式文件存储系统FastDFS实战解析

FastDFS(Fast Distributed File System)是由阿里巴巴开源的轻量级分布式文件系统,专为海量小文件存储和高并发访问场景优化。其设计目标聚焦于高性能、高可用与弹性扩展能力,适用于图片、音视频等非结构化数据的集中管理。文件系统平均写入延迟(ms)inode利用率删除性能数据一致性保障ext48.7中等较慢journal机制xfs5.2高快CRC校验 + log结论分析。

weixin_31139479的博客 950

电子商务文件存储及读取服务的设计和开发思路

NULL 博文链接:https://cici9898-007.iteye.com/blog/1813892

docker

docker 安装与操作 安装 1.更新 Ubuntu 的 apt 源索引 sudo apt-get update 2. 安装包允许apt 通过 HTTPS 使用仓库 sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-prope...

WEi的博客 484

FastDFS教程

FastDFS教程,详细介绍了分布式文件服务FastDFS的底层原理,实现细节,安装部署,和使用指导。

FastDFS安装(文件存储)

fastdfs一键docker安装和分布安装

u010913170的博客 673

【开发技巧】– 什么你还在使用本地作为文件保存服务器?本文将带你了解,如何使用SpringBoot优雅的将文件上传至阿里云OSS、FastDFS(分布式文件系统)

1.1 业务背景 当今互联网项目,需求日渐增多,并且应用服务器的压力也日渐增大,这时就引入了分布式系统的概念,然后又有了动静分离,即动态资源与静态资源分开,使后端的应用服务器专注业务请求的处理,并降低因为请求静态资源而为应用服务器带来的压力。 1.2 文件上传的实现方式有哪些? 直接上传到应用服务器(缺点:增加应用服务器的压力)。 通过搭建私有云,比如通过FASTDFS搭建一个分布式文件系统。 使用第三方云存储(阿里云OSS、七牛云等)。 1.3 文件上传的实现 1.3.1 前置准备 1. 创建一个枚举类FileSourceEnum(用于后期实例化指定文件上传业务实现类) package co

Windows系统下LaTeX环境搭建与编辑器配置全攻略

本文详细介绍了在Windows系统下搭建LaTeX环境的完整流程,包括TeX Live的安装、TeXStudio编辑器的配置优化以及常见问题排查。特别针对中文用户推荐使用清华镜像源加速下载,并提供了XeLaTeX编译器配置、中文支持等实用技巧,帮助用户快速上手LaTeX文档编写。

weixin_42554408的博客 449

电商平台图片存储实战:FASTDFS+Kafka实现高并发处理

这套FASTDFS+Kafka的方案经过618和双11的考验,表现非常稳定。高峰期每天处理超过百万张图片上传请求,平均响应时间控制在200ms以内。异步处理提高吞吐量分布式存储保证可靠性合理的监控和预警机制持续的性能优化如果你也在为电商图片存储发愁,不妨试试这个方案。我在InsCode(快马)平台上部署了一个简化版的Demo,可以一键体验整个流程。这个平台最方便的是不用自己搭建环境,直接就能看到运行效果,特别适合快速验证想法。

GoldenleafRaven13的博客 685

1.用Python写了一个进销存管理的软件~需求分析&界面设计&数据库设计&技术路线选择~

前端也打算用Python来写,查了很多的python库,大家比较推荐的是wxpython和QPython,之前接触过一点点的QT,确实非常强大,但是库比较重量级,自己写的这个东西明显配不上QT,又详细调研了一下wxpython,就是它了!

pepper_lihui的专栏 4321

Django电商网站项目(4)--商品模块

前文中已设计了与商品模块有关的表如下: 首页活动表用于展示一些活动图片(并附带活动链接); 首页轮播表用于展示一些轮播图片(具体轮播的效果在前端使用CSS完成); 首页展示表用于展示首页按分类排列后的一部分具体商品,展示方式意为以图片展示或以文字展示; 商品图片表用于存储商品图片,由于一种SKU商品可能有多张图片,因此将其专门提出制作一个表; 商品种类表用于存储商品的种类,即类似于水果/蔬菜/肉...

weixin_44806420的博客 4012

Codex 100个真实案例 - 用AI做英语单词计划学习工具(记忆曲线+测验)

背单词是英语学习的基本功,但市面上的背单词 APP 要么收费、要么广告太多。本案例用 Codex 从零打造一个 **英语单词计划学习工具**,实现 SM-2 间隔重复算法(Anki 的核心算法)、单词本增删改查、多种测验模式(选择题/拼写/听写)、TTS 发音播放,以及学习数据的可视化统计图表。全程用自然语言驱动 Codex,用 Python 写后端逻辑 + 终端 UI,打造你的私人背单词助手!

yueyeguzhuo的专栏 194

【SA8155P】AIS Camera相关内容的简单介绍

【SA8155P】AIS Camera相关内容的简单介绍

静谧、淡雅 1695

电商平台图片存储实战:FastDFS+CDN架构解析

这套架构上线后,每天稳定处理上百万次图片请求。FastDFS的group设计确实能很好应对扩容需求CDN让海外用户访问速度提升了10倍监控很重要,我们开发了专门的dashboard监控文件分布和节点状态在InsCode(快马)平台上可以找到类似的分布式存储demo项目,它的一键部署功能让我快速验证了架构可行性。特别适合想尝试分布式存储但不想折腾环境的开发者。

StarfallRaven13的博客 1016

基于Playwright和反爬虫规避技术的雪球股票讨论数据采集方案

随着量化投资和社交投资的兴起,雪球作为中国领先的投资社交平台,其用户讨论数据成为研究市场情绪的重要来源。本文将详细介绍如何使用最新的Playwright技术和反爬虫规避策略,构建一个高效、稳定的雪球股票讨论爬虫系统。本文详细介绍了基于Playwright的雪球股票讨论爬虫实现方案,涵盖了从基础配置到高级反爬虫策略的各个方面。AI驱动的反爬虫对抗更智能的请求调度算法区块链技术在数据溯源中的应用联邦学习在数据采集中的运用。

2201_76125261的博客 1001

分布式FastDFS文件系统——基于Django框架的天天生鲜电商网站项目系列博客(六)

系列文章目录 需求分析——基于Django框架的天天生鲜电商网站项目系列博客(一) 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二) 用户注册模块——基于Django框架的天天生鲜电商网站项目系列博客(三) 用户登录模块——基于Django框架的天天生鲜电商网站项目系列博客(四) 用户中心模块——基于Django框架的天天生鲜电商网站项目系列博客(五) 待更新…… 项目资源下载 天天生鲜电商网站项目源码Github地址(可Fork可Clone) 天天生鲜电商网站项目源码Git

IronmanJay 2650

华为 MetaERP · 本体论驱动的 PTP 全流程智能建模方案

华为MetaERP通过“本体+事件+图谱+Agent”四位一体架构,将传统ERP从“记录系统”升级为“智能执行系统”。基于OWL本体实现业务语义精准表达,融合LLM与元数据多租能力,构建可推理、可治理的PTP全流程智能模型,解决AI理解业务逻辑难题,实现三单匹配自动化、关账效率提升30%、成本降低50%,推动企业数字化迈向可信智能新范式。

金牌架构师 179

SimSwap复现指引及代码分析【2023有更新】

我的环境!!!😚😚😚 之后会遇到:还会遇到至此环境配置完毕!下面是所需要的checkpoint。至此环境准备结束。先试试环境是否有问题,图片是代码包中给的。我用的是512的checkpoint,无水印,a是源脸,b是目标脸。输出到./output/result_whole_swapsingle.jpg 如图是可以成功换脸的:(为了方便查看将图像裁剪到了128x128) 表示图像预处理,相应的改为也是一样。不加就是对已经面部对齐的图像进行简单的面部交换。 加上就是无水印。 交换一张图片中的所有面孔。

zik的博客 2045

完整电商项目--项目介绍(1)

项目开发模式 开发模式 : 前后端不分离 后端框架 : Django + Jinja2模板引擎 前端框架 :Vue.js 项目介绍 B2C – 企业对个人 ,既商对客的运营模式 项目前端由 他人开发,合作项目,这里只介绍后端技术。 归纳项目的主要模块 验证: 图形验证、短信验证 用户: 注册、登录、用户中心(基本信息、邮箱激活、收货地址、我的订单、修改密码) 第三方登录: QQ登录 首页广告: 首页广告 商品: 商品列表、商品搜索、商品详情、商品浏览记录 购物车 购物车管理、购物车合并 订单: 确

pythonstrat的博客 1万+

【Zephyr存储专题】09_LittleFs文件系统操作

本文档旨在为开发者介绍Zephyr下Littlef's文件系统相关配置使用指南

zero的博客 3245

探秘FastDFS-ZYC:一个高效、易用的文件存储系统

探秘FastDFS-ZYC:一个高效、易用的文件存储系统 FastDFS-ZYC是一个基于FastDFS的二次开发版本,由CanMind开源团队打造,旨在提供更稳定、功能更丰富的文件存储解决方案。在这个项目中,你将找到优化的性能、增强的安全性以及友好的API接口,让文件存储变得简单而高效。 项目简介 FastDFS-ZYC的主要目标是简化大型互联网应用中的文件存储问题。它提供了一个轻量级的分布式文...

gitblog_00043的博客 548

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

美多商城项目:商品数据库表设计、准备商品数据、首页广告、商品列表页

SPU = Standard Product Unit (标准产品单位)SPU是商品信息聚合的最小单位,是一组可服用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗的讲,属性值、特性相同的商品就可以归类到一类SPU。例如:iPhone X就是一个SPU,与商家、颜色、款式、规格、套餐等都无关。SKU = Stock Keeping Unit (库存量单位)SKU即库存进出计量的单位,可以是以件、盒等为单位,是物理上不可分割的最小存货单元。

黑马程序员官方博客 4538

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

fastdfs + nginx实现对项目图片文件的存储

@[TOC]python内置函数 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写...

qq_37623764的博客 503

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 完整电商项目--(六)商品模块(4):首页三级分类展示及广告展示
下一篇: 完整电商项目--(六)商品模块(5):商品列表页
我是py呀
博客等级 码龄8年 205粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值