SAE临时文件读写例子 SAE_TMP_PATH

<?php
function sae_write($file,$content){
  file_put_contents(SAE_TMP_PATH."/".$file,$content);
}
function sae_read($file){
  return file_get_contents(SAE_TMP_PATH."/".$file);
}
?>
<?php
sae_write("1.txt","test");
$rs=sae_read("1.txt");
print_r($rs);
?>  

当处理上传图片时,原图被POST上来之后,可直接 move_uploaded_file 到 Storage 下。

而当需要对上传上来的图片添加水印时,一般是先处理该图然后保存到支持临时读写的TmpFS下,再把这个文件写入到Storage中,但是这时不能够再使用 move_uploaded_file (bool move_uploaded_file( string $filename, string $destination) )函数了,因为如果 $filename 非通过 HTTP 的 HTTP POST 上传时,视为该 $filename 非法,函数将不执行任何操作返回 flase。

可简单有以下语句完成:

file_put_contents($filaname, file_get_contents($tmpfile));

================
TmpFS

因为平台安全性的考虑,SAE限制了用户对于本地IO的使用,但这样对于一些传统的PHP项目,也许带来了很多不便,因为它们都或多或少的有对本地IO的操作,像Smarty的编译模板。为了解决这个问题,SAE提供了TmpFS功能。TmpFS允许开发者通过标准的IO函数临时读写本地IO,这样方便了很多非SAE项目的移植。

特别注意:

临时文件的生存周期等同于PHP请求,也就是当该PHP请求完成执行时,所有写入TmpFS的临时文件都会被销毁
TmpFS是本地临时文件,不是共享存储,而SAE是全分布式环境,所以不同请求之间无法通过TmpFS共享操作文件
TmpFS操作的文件限于SAE_TMP_PATH目录内,而不同App的SAE_TMP_PATH是不同的
TmpFS的文件为纯内存存储

应用场景

用户的可持久化存储,请使用Storage或者MySQL存储,而缓存存储请使用Memcache服务存储,TmpFS是满足用户的一个请求的临时文件的读写需求。比如抓取一个URL的图片,判断一下大小,再决定是否写入Storage。需要在本地生成文件的情况大致分以下几种:

缓存
配置文件
静态文件
临时文件

使用指南
例子:

appname: saetest
appversion: 1

在一个php文件中:

file_put_contents( SAE_TMP_PATH . ‘/mycode.txt‘ , ‘dummy test‘ );
echo file_get_contents( SAE_TMP_PATH . ‘/mycode.txt‘ ); // will echo dummy test;  

如果是两个独立的php文件:

a.php  

file_put_contents( SAE_TMP_PATH . ‘/mycode.txt‘ , ‘dummy test‘ );  

b.php  

echo file_get_contents( SAE_TMP_PATH . ‘/mycode.txt‘ ); // 出错啦,文件已经不存在了...  

说到这里,大家应该明白,用它做缓存不但不会带来性能提升,反而会带来额外的开销。

  

时间: 2024-10-10 17:44:00

SAE临时文件读写例子 SAE_TMP_PATH的相关文章

java IO文件读写例子(OutputStream,InputStream,Writer,Reader)

一,File创建文件 File file = new File("D:" + File.separator + "yi.txt"); 代码示例: package com.hbut.io; import java.io.File; import java.io.IOException; public class FileDemo { public static void main(String[] args) { File file = new File("

简单的nodejs 文件系统(fs)读写例子。

在nodejs中,可以通过fs(file system)模块进行文件的I/O操作. API链接地址: http://nodeapi.ucdok.com/#/api/fs.html 下面进行fs文件系统的使用实例: 1.模块调用声明: var fs= require('fs'); var path = require('path'); fs为文件模块,path为系统路径模块. 2.可以使用writeFile方法,将数据写入文件到某个文件夹下. fs.writeFile(filename, data

最简单的基于FFmpeg的内存读写的例子:内存转码器

上篇文章记录了一个基于FFmpeg的内存播放器,可以使用FFmpeg读取并播放内存中的数据.这篇文章记录一个基于FFmpeg的内存转码器.该转码器可以使用FFmpeg读取内存中的数据,转码为H.264之后再将数据输出到内存.关于如何从内存读取数据,以及如何将数据输出到内存,可以参考文章: ffmpeg 从内存中读取数据(或将数据输出到内存) FFmpeg读写内存的关键点有2个:1.       初始化自定义的AVIOContext,指定自定义的回调函数.2.       自己写回调函数.注意函数

最简单的基于FFmpeg的内存读写的例子:内存播放器

打算记录两个最简单的FFmpeg进行内存读写的例子.之前的所有有关FFmpeg的例子都是对文件进行操作的.例如<100行代码实现最简单的基于FFMPEG+SDL的视频播放器>播放的是一个视频的文件.而<最简单的基于FFMPEG的转码程序>也是将一个视频文件转换为另一个视频文件.<最简单的基于FFmpeg的视频编码器(YUV编码为H.264)>也是最后编码得到一个H.264视频文件.实际上,并不是所有视频的编码,解码都是针对文件进行处理的.有的时候需要的解码的视频数据在一

(转)最简单的基于FFmpeg的内存读写的例子:内存播放器

ffmpeg内存播放解码 目录(?)[+] ===================================================== 最简单的基于FFmpeg的内存读写的例子系列文章列表: 最简单的基于FFmpeg的内存读写的例子:内存播放器 最简单的基于FFmpeg的内存读写的例子:内存转码器 ===================================================== 打算记录两个最简单的FFmpeg进行内存读写的例子.之前的所有有关FFmpe

Sina App Engine(SAE)入门教程(2)-Mysql使用

如果你还没有SAE的账号,请在http://sae.sina.com.cn 注册新用户.具体的注册流程请参见:Sina App Engine(SAE)入门教程(1)在常规的环境下,我们可以通过http://php.sinaapp.com/manual/zh/ref.mysql.php中PHP的原生函数去操作Mysql,但是由于SAE的环境问题,使用了主从分离技术,因此我们对数据库的操纵做了一次封装,当然你也可以继续使用这种方式去操作mysql.你可以如下使用.首先得到数据库连接的主机名,账号,密

保护SSD,设置Chrome浏览器临时文件夹到ramdisk分区

很多用低端/山寨SSD的朋友都用Ramdisk来保护硬盘,一般都把系统temp目录和IE浏览器临时文件夹目录设到Ramdisk分区了.      最近用谷歌的chrome浏览器,发现浏览网页时候硬盘灯经常闪,才发现chrome浏览器的临时文件夹在系统盘,所以上网产生了大量临时文件读写.      和IE一样,chrome也可以修改临时文件夹位置,但没有提供相关设置的菜单,只能通过加启动参数来实现.具体如下: 在桌面 Google 浏览器的快捷路径右键选择”属性“, 并且在"目标“一栏"

Oracle 11g 学习3——表空间操作

一.表空间概述 表空间是Oracle中最大的逻辑存储结构,与操作系统中的数据文件相对应: 基本表空间:一般指用户使用的永久性表空间,用于存储用户的永久性数据 临时表空间: 主要用于存储排序或汇总过程中产生的临时数据: 大文件表空间:用于存储大型数据(例如LOB) 非标准数据块表空间:用于在一个数据库实例中创建数据块大小不同的表空间: 撤销表空间:用于存储事务的撤销数据,在数据恢复时使用. 二.创建表空间 语法: CREATE [ TEMPORARY | UNDO ] TABLESPACE tab

给折腾ramdisk的朋友们一点建议

Ramdisk是什么,恐怕不需要我多说大家都知道.至于ramdisk有什么优点,百度一下你能看到因为ramsik有着很快的读写速度所以"放临时文件能加快速度","装软件可以秒开"等等各种优化的方法,比较犀利的言论还认为使用ramdisk可以延长续航时间,保护硬盘等等"高阶应用" 在此我觉得第一个想出延长续航时间,用于bt下载来保护硬盘的人实在是碉堡了,连这么神奇的功能都能开发出来.我对您的敬佩犹如滔滔江水,连绵不绝-- 我也曾是一个热衷于折腾ra