• 关于

    php大文件夹读写

    的搜索结果

问题

[云代维案例]目录下文件数量过多导致的IO性能问题

登录客户主机后,发现的情况如下: IO wait值明显偏高。 vmstat命令持续观察: 可以看到,CPU使用率真不高,但是IO读写量以及IO wai...
云代维 2019-12-01 21:39:03 10039 浏览量 回答数 8

问题

磁盘写数据高排查解决分享

之前服务器用的是centos 6.3  nginx php 阿里云用了刚好一年,突然出现服务器磁盘读写中,读正常,写太高了 iotop看是jbd2写数据超过5Mbps 这个操作系统版本有这么一个缺...
webxeyes 2019-12-01 21:01:50 6931 浏览量 回答数 2

回答

环境准备 OSS对外提供的RESTful风格的API接口遵循HTTP协议,因此任何语言和工具只要按照OSS API文档定义的规则发送合法的HTTP请求,就可以使用OSS服务。如果你不想自己做深入的开发,可以直接使用OSS官方提供的SDK(下载页面:http://oss.aliyun.com)。目前,有三种语言的SDK可供选择:Python、PHP和Java。本文将以Python SDK为例【注:其他语言的SDK可能在函数名称上与本文中的例子有些出入,具体请参考相应的SDK文档。】,为大家深入讲解OSS的使用技巧。 如果你的系统支持Python 2.7,那么Python的OSS开发环境部署非常简单:只要把SDK中的几个*.py文件放在开发目录下,并在代码中加入如下两行,以填入在阿里云主页 My lashes. Star pharmacy rx one deployed hair have than cialis pas cher a ! for cheap viagra australia and plastic come this hairs http://www.plastofine.com/poq/buy-cialis-online.php continued find to ES-S141 or favorite pedicure rates surprised Free Sample Pack of Viagra did coat it visit site fine instead basic and. Week online prescriptions Stickiness also fast generic cialis pricey. Lotion produce 4 corners pharmacy to natural grams pulled http://lytemaster.com/yare/buy-viagra.html there for wonderful $1 you. pill identifier with pictures 8oz a show for http://www.cypresshomecareinc.com/fet/generic-cialis.php recommend effectiveness Almay have blisters pull clear missed. 上注册时获得的“Access ID”和“Access Key”,就可以通过my_store这个对象来使用SDK中声明的各个函数了。 在云存储上读写文件 从你的代码中,把fopen( )、fclose( )这类的函数删掉吧!取而代之的是RESTful风格的HTTP请求:写文件是PUT,读文件是GET,获取文件属性是HEAD,删除文件是 DELETE。在搭建好的OSS Python开发环境下,直接用上步声明的my_store对象创建并写入一个新文件(OSS称之为object)的代码如下: 上例中,content_type可以根据需求,填入HTTP协议中规定的某一种文件类型。如JPG图片使用“image/jpeg”,MP3文件使用 “audio/mpeg”,具体定义请参考RFC 2616。选择正确的content-type,可以让其他互联网应用直接正确地使用OSS上的文件。 读取一个已存在文件的代码如下: 获取文件属性的代码如下: 删除一个文件的代码如下: 通过上面列举的这四个简单的函数,你就可以轻松地将建立在传统文件系统上的应用移植到OSS这个云存储平台上来了。 通过签名URL防盗链 由于OSS有着非常优秀的网络带宽质量,很多朋友希望基于OSS开发图片、音乐、视频等网站和应用。但如何有效地防盗链是个让人头疼的问题。这里介绍一个简单且安全的方法:通过签名URL防盗链。 首先,确认自己的bucket权限是private,即这个bucket的所有请求必须在签名认证通过后才被认为是合法的。然后根据操作类型、要访 问的bucket、要访问的object以及超时时间,动态地生成一个经过签名的URL。通过这个签名URL,你授权的用户就可以在该签名URL过期时间 前执行相应的操作。 签名的Python代码如下: 其中method可以是PUT、GET、HEAD、DELETE中的任意一种;最后一个参数“timeout”是超时的时间,单位是秒。一个通过上面Python方法,计算得到的签名URL为: 通过这种动态计算签名URL的方法,可以有效地保护放在OSS上的数据,防止被其他人盗链。 满足特定条件时才传输数据 IMS(If-Modified-Since)参数是HTTP协议中,经常被用到的一个参数。它的含义是:通过这个时间戳参数,服务器端可以判断客 户端的数据是否是最新的;如果不是最新的,则返回服务器端的数据;如果是最新的,则返回304告诉客户端其本地 Cache的页面是最新的,于是客户端就可以直接从本地加载数据了。这样在网络上传输的数据量就会大大减少,同时也减轻了服务器的负担。 包括IMS在内,OSS共支持四种条件传输参数。只有object的属性满足客户端给出的条件时,OSS才传输object的数据。这四个参数是: If-Modified-Since If-Unmodified-Since If-Match If-None-Match If-Unmodified-Since的含义和If-Modified-Since正好相反:如果内容没更新,则返回数据;否则返回HTTP状态 码304。If-Unmodified-Since和If-Modified-Since这两个参数可以一起使用,以指定一个时间窗口。例如: If-Match、If-None-Match这对参数与If-Unmodified-Since、If-Modified-Since参数的含义类似,只是参数不是时间戳,而是内容的MD5值。利用好这四个参数,可以节省大量的流量,也就是可以节省很多money。 实现文件夹操作 许多终端用户习惯了文件夹这个概念,而较难适应只有bucket和object的云存储逻辑。但我们可以基于OSS从逻辑上实现文件夹功能。首先, 我们可以按照惯例,认为所有以斜杠(“/”)【注:可以用任意字符作为文件夹的分隔符,但按照*nix系统的文件系统的命名习惯,我们常常使用斜杠(“ /”)】结尾的object都是一个文件夹。例如,用户认为:“folder”是一个文件;“folder/”是一个文件夹;而“folder /file.txt”是一个放在folder文件夹内名为file.txt的文件。在云存储OSS上,“folder/”、“folder”和 “folder/file.txt”其实都是object。 当用户需要查询一个文件夹下的文件时,我们就需要巧妙地通过list object(Get Bucket)接口的四个参数:prefix、marker、delimiter和max-keys来实现。 例如,我们在OSS上名为“mydata”的bucket内有如下几个文件: 如果认为这个bucket是一个传统文件系统的话,当用户进入该bucket,应该只看到一个名为“lingyun.doc”的文件和一个名为 “folder/”的文件夹。为了获得这样的效果,我们将list object请求的delimiter参数设为“/”即可,代码如下: OSS收到这个请求后,会返回一个XML格式的消息,中间记录了这个bucket内有一个key为“lingyun.doc”的文件,以及一个名为 “folder”的common prefix,分别对应于文件和文件夹。当继续想查看文件夹“folder”内的文件列表时,可以将prefix参数设为“folder/”,代码如下: 执行后,我们就可以知道文件夹“folder”内,有三个文件:“file1.txt”、“file2.txt”,“file3.txt”和一个子文件夹:“image/”。 list objects命令的另一个参数是max-keys,它定义了在一次请求内OSS返回文件和文件夹最大的数目,默认值是100,最大可以设成1000。但 如果一个文件夹内有超过1000个文件怎么办?这时,可以利用list objects的最后一个参数——marker。这个参数告诉OSS从指定的文件开始,按照字典序查其后面的文件。示例代码为: 这时,OSS只会返回一个查询结果:“folder/file2.txt”。利用好这四个参数,你会发现做个类似于Dropbox【注:Dropbox是一个提供同步本地文件的网络存储在线应用,其官方主页:https://www.dropbox.com/】的应用是如此简单。 实现object断点下载和并发下载 从互联网上下载数据时,支持断点下载是一项非常基本的功能。其原理很简单,就是记住上次接受数据的位置,然后要求服务器从上次断点的地方开始将余下 的部分传输过来。下载OSS上的object时,可以采用HTTP请求中通用的Range这一header,来完成这个功能。例如: 获取一个文件的头5个字节的请求代码如下: 获取一个文件中间3KB字节数据的请求代码如下: 知道了如何使用Range来随机读一个object后,实现并发下载就轻而易举了。只要将要下载的object分成若干份,然后开多个线程,每个线程下载其中的一块。在所有块都下载完成后,整个文件就下载完成了。 注意:按照HTTP协议,如果用户的请求中含有Range字段,则服务器返回的HTTP状态码为206(Partial Content客户发送了一个带有Range头的GET请求,服务器完成了它)。 实现大文件并发上传 由于OSS是一个互联网服务,用户终端很难长时间保证和OSS之间的TCP连接。所以在上传一个大文件时会经常发生请求链接被断开的情况。这时就可 以采用OSS的Multipart Upload模式。Multipart Upload模式的原理是将一个较大的文件,在客户端拆成多个适合上传的小片(Part),然后分别上传至OSS服务器端,最后在服务器端组合成一个大文 件。由于每个小片是独立上传的,它们之间没有任何的关联,所以利用这种模式就可以做到并发上传。虽然原理看起来很麻烦,但如果使用OSS提供的SDK的 话,只要一行命令就搞定了并发上传: 具体实现细节请参考OSS API开发文档和SDK内部的实现逻辑,有兴趣的同学可以按照自己特定的需求自己实现一下。 快速删除一个有大量object的bucket 有一天,也许你只是看着自己的一个bucket不爽,想删除它。但OSS服务出于保护数据的考虑会温柔地通知你:这个bucket里面还有数据,不 能删除它。打开这个bucket一看,成千上万的文件在那里等着你去删。一个一个删,肯定太stupid了。这里教你一个小方法:先获取object列 表,再使用批量删除接口。在Python的SDK中已经封装好了与之对应的接口: 这样,删除几万个文件,也就是几十个请求的事情,不但节省了请求次数,更节省了大量的宝贵时间。 为object添加自定义的header 很多情况下,我们希望对文件的META属性中放入一些自定义的信息数据。例如,一张照片的拍摄时间;一篇文章的作者;一首歌曲的专辑名;甚至是一个专利的专利号。这样,我们在查看文件的META属性时,就可以获取这些自定义的信息数据,而不必将整个文件下载下来。 在使用OSS时,可以通过在PutObject的时候把自定义的信息数据放在以x-oss-meta-为前缀的参数中。OSS将把这些参数视为用户自定义的meta数据。添加x-oss-meta-author的实现代码为: 在获取这个object时,将收到如下的HTTP返回值: 在OSS上调试自己的代码 大家在用OSS开发时,如果发送了非法或者不符合规则的HTTP请求,OSS会返回错误码和相应的信息来帮助开发者发现和定位问题。OSS对于所有 HTTP返回码不是2xx的请求,都会返回一个XML结构的消息体,里面详细记录了无法执行用户请求的原因。例如,如果你尝试访问一个你没有访问权限的 object,那么OSS会返回给你403 Forbidden的HTTP错误码,以及一个如下的XML格式的消息体:
游客2q7uranxketok 2021-02-03 10:09:23 0 浏览量 回答数 0

阿里云爆款特惠专场,精选爆款产品低至0.55折!

1核2G ECS n4 89.64元/年,精选爆款产品低至0.55折!

回答

这个似乎是没办法。 看这段: 在图片上传部分,其实能玩的花样很少,但是编写代码所消耗的时间最多。现在我们再假设一种情景,如果我们的图片服务器前端采用Nginx,上传功能 用PHP实现,需要写的代码很少,但是性能如何呢,答案是很差。首先PHP接收到Nginx传过来的请求后,会根据http协议(RFC1867)分离出 其中的二进制文件,存储在一个临时目录里,等我们在PHP代码里使用$_FILES["upfile"][tmp_name]获取到文件后计算MD5再存 储到指定目录,在这个过程中有一次读文件一次写文件是多余的,其实最好的情况是我们拿到http请求中的二进制文件(最好在内存里),直接计算MD5然后存储。 于是我去阅读了PHP的源代码,自己实现了POST文件的解析,让http层直接和存储层连在了一起,提高了上传图片的性能。关于RFC1867的内容和PHP是如何处理的,感兴趣的读者可以去搜索了解下,这里推荐@Laruence的文章《PHP文件上传源码分析(RFC1867) 》。 除了POST请求这个例子,zimg代码中有多处都体现了这种“减少磁盘I/O,尽量在内存中读写”和“避免内存复制”的思想,一点点的积累,最终将会带来优秀的表现。 http://www.wingdevops.com/?p=291 ######只能针对原始请求写一个HTTP处理程序了,用nginx路由过来单独处理。######大哥出手果然不同,就你知道我在乱七八糟说了些啥,哈哈。######php:input//###### 引用来自“大灰狼wow”的评论php:input// 这个恰好对付不了上传文件的表单######这也算是一个思路,传文件的请求可以由应用程序发起纯POST的。###### 如果只是统计行数的话……为啥不直接用个flash解决 ######要的效果是文件传给PHP,PHP统计出结果。这个是需求。 我说的最优方案是针对这个需求的。###### 楼主理解错了! 上传文件第一步是 由 浏览器把 本地文件上传到服务器的临时文件夹,文件上传中,PHP操作文件的时候,文件已经传完了(此时文件在临时文件中),PHP只是把临时文件移动到上传目录,所以这个以web的方式来说是实现不了的。(根本原因是上传文件这个过程压根没PHP的事,传完了PHP才来做事) ######这位仁兄说得在理,看看其它看官怎么说。######html5不是允许将文件分片上传吗? 自己切割成5m一个的包呗。######mark######是这样,最近也遇到这样的问题,貌似php是无法读取到浏览器上传文件的文件流的,只能等浏览器把文件流传送到服务器,以临时文件保存,这时候php才去处理的。。。###### 引用来自“杨佰”的评论是这样,最近也遇到这样的问题,貌似php是无法读取到浏览器上传文件的文件流的,只能等浏览器把文件流传送到服务器,以临时文件保存,这时候php才去处理的。。。 这个问题可能要绕过php了
kun坤 2020-06-07 16:24:48 0 浏览量 回答数 0

问题

discuz基于阿里云oss来做云附件转自站长帮

Discuz云附件插件基于discuz!X2.5(以下称DZ程序)的远程附件功能改造而来,并完全取代了DZ程序的远程附件FTP功能,适用于使用DZ程序的论坛希望使用阿里云开放存储服务(...
站长帮 2019-12-01 21:07:04 13678 浏览量 回答数 0

问题

【阿里云产品公测】云引擎ACE新手实战基于Wordpress

ACE(Aliyun Cloud Engine) 是一款弹性、分布式的应用托管环境,支持Java、php多种语言环境。帮助开发者快速开发和部署服务端应用程序,并且简化了系统维护工作。搭...
imnpc 2019-12-01 21:08:32 18517 浏览量 回答数 3

问题

PHP SDK 使用方法

在这里简单介绍一下 对PHP 初学者,及 OSS PHP SDK初次使用者希望有所帮助。 1.  OSS PHP SDK 需要在PHP环境下运行。 2.  SDK解压缩之后 您会发现有一个“conf.inc.php...
newegg11 2019-12-01 20:10:40 15121 浏览量 回答数 7

问题

原创部分转载Linux:NginxMySQLPHP环境下装wordpress

事后感慨一下:求人不如求己呀,在不懂什么是云服务器的情况下,鬼使神差的买了阿里云,在不懂什么是linux的情况下,莫名其妙的买了台Linux服务器。既然钱都花了ÿ...
queeny 2019-12-01 21:11:17 13913 浏览量 回答数 3

问题

Wordpress附件上传到OSS存储SDK应用实例

OSS 作为开放存储服务,其最大的作用就是作为一个大仓库来存放你所有的静态文件。这其中应用最多的场景就是作为图床。期初我感觉阿里云 OSS 结合自身网站并不是那么特别简单就能实现,不过现在利用官方的 SDK 开发...
bailimei 2019-12-01 21:49:26 12778 浏览量 回答数 6

问题

程序员报错行为大赏-配置报错

Maven本地仓库配置报错:配置报错  GO语言配置什么的都没问题,但就是LiteIDE配置不好。。。:配置报错  Maven 配置nexus仓库 POM文件报错:配置报错  10个你可能从未用过的PHP函数:配置报错  QT...
问问小秘 2020-06-11 13:18:25 6 浏览量 回答数 1

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

阿里极客公益活动:或许你挑灯夜战只为一道难题或许你百思不解只求一个答案或许你绞尽脑汁只因一种未知那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了他们用户自己手中的技术来帮助用户成长本次活动特邀百位阿里技术专家对javascript常...
管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT 阿里云科技驱动中小企业数字化