因此,我正在一个网站上提供用户上传的视频,所有基础架构都在亚马逊上。我正在寻找一个好的工作解决方案,这就是我的想法
首先,您对此有何看法?有没有更简单的方法可以达到相同或更好的效果?
其次,我现在的主要问题是将文件传输到S3,我已经尝试过s3fs来做到这一点,但是在大型文件传输中却遇到了各种奇怪的问题,这使我放弃了s3fs。
为了响应最快/最佳方式,将数据从S3复制到EC2?有人建议使用EBS卷,但是我不确定是否可以挂载EBS,然后也可以访问S3上的相同数据。
任何帮助表示赞赏
假设您在AWS中运行了instance1,instance2和instance3.
它们都运行Apache,您运行的Web应用程序需要允许用户上传图像,这在许多项目中都是如此.
此外,当您显示图像时,需要将其裁剪为正确的大小,因此您基本上需要确保所有实例始终可以访问相同的文件.
因此,假设用户将图像上传到instance1,而另一个用户正在访问其中相同图像以100x100大小显示的页面,并且他点击了instance2.另一个用户试图在instance3上看到300x300大小的相同图像.还有许多其他不容易预测的尺寸.
所以你基本上需要一个分布式文件系统,我正在使用Gluster FS.所以所有实例都可以访问相同的文件,当看到图像的请求时,我有一个PHP脚本,检查该图像是否已经调整到给定的尺寸,如果是,它将显示它们,如果不是它将调整大小它然后再显示.
Gluster FS工作非常顺利,我对它非常满意,除了我认为我正在重新发明轮子,AWS应该有一些解决方案.使用top命令,我可以看到glusterfs总是使用我的一些CPU.
我还使用CloutFront来缓存调整大小脚本的输出,这可以将服务器负载降低到很好的程度,但Gluster FS的运行成本仍然很高.
您可以使用rsync和某种类型的cron作业来完成同样的操作而不需要Gluster FS,但这需要很多工作并且不太可靠,因为您需要知道何时触发rsyncing过程,并且您仍然无法获得巨大的好处Gluster FS提供的.我也试过s3fs,我只是想说这绝对是一场噩梦.
与Gluster FS相比,NFS驱动器似乎也非常原始,我认为它们使用UDP,因此它们会对您的数据进行处理无关紧要.
那么做这样的事情最好的方法是什么?我试图找到AWS提供的分布式文件系统,因为我认为许多开发人员会有相同或类似的问题,但没有.
您可以说只是上传到s3,但s3对我没有帮助,我需要知道图像是否已经调整大小,然后调整大小并提供服务或者只是服务,所以我需要一些我可以编写脚本的东西.
您也可以说好,为什么不首先调整所有图像的大小,然后将它们全部上传到s3,我不能这样做的原因是
amazon-s3 amazon-web-services distributed-filesystem glusterfs
这是我如何将csrf添加到表单中
$this->addElement('hash', 'csrf', array('ignore' => false));
当发生这种情况时会创建会话,然后当用户发送ajax请求时,通过创建表单实例来验证请求中的值,并且自初始请求开始以来,表单始终对第一个ajax请求有效.创建了html输出,
当第二次发送ajax请求时会发生不同的事情,
该表单的实例具有与原始表单不同的csrf值,并且当我的代码完成时,最初创建的会话也被销毁,因此没有会话来检查接收到的值,因此表单不会验证并发生以下错误.
No token was provided to match against
事件的哪些想法,表单的csrf值会自动存储在会话中?
md5哈希算法是一个内射函数吗?意味着它将为任何给定的输入生成唯一的输出?
如果没有,是否有其他类似的哈希算法是单射的?
我正在尝试查询mongodb以查找具有特定日期范围的'date'属性的文档,这就是我正在做的事情.
Q1.
$searchCriteria = array('$and' =>
array(
'date' => array('$gt' => $start, '$lte' => $end),
'lid' => $lid
));
Run Code Online (Sandbox Code Playgroud)
Q2.
$results = $collection->find($searchCriteria);
Run Code Online (Sandbox Code Playgroud)
它不会返回任何内容,但如果我单独运行每个搜索条件,它们都会起作用.
Q3.
$searchCriteria = array(
'date' => array('$gt' => $start, '$lte' => $end)
);
Run Code Online (Sandbox Code Playgroud)
这有效,它返回与此日期范围匹配的文档
$searchCriteria = array(
'lid' => $lid
);
Run Code Online (Sandbox Code Playgroud)
这也有效,返回所有盖子等于我要求的.
但是当我想要将这些条件设置为条件时,它不起作用,这里是搜索条件Q1的var_dump:
array(1) { '$and' => array(2) { 'date' => array(2) { '$gt' => string(10) "2010-11-10" '$lte' => string(10) "2010-11-12" } 'lid' => int(6209) } }
Run Code Online (Sandbox Code Playgroud)
这是同一查询的json_encoded输出:
{"$and":{"date":{"$gt":"2010-11-10","$lte":"2010-11-12"},"lid":6209}}
Run Code Online (Sandbox Code Playgroud)
在mongo shell中运行查询的json输出会导致错误
db.largedaily.find({"$and":{"date":{"$gt":"2010-01-01","$lte":"2010-01-02"},"lid":6209}});
error: { "$err" : …
Run Code Online (Sandbox Code Playgroud) 我正在尝试这个:http: //dev.sencha.com/deploy/ext-4.0.0/examples/grid/infinite-scroll.html
我试图使网格在每一行旁边都有复选框,以便用户可以选择多行.
我试过了:
SelModel: 'CheckboxSelectionModel',
Run Code Online (Sandbox Code Playgroud)
在配置中,它没有什么区别,我也删除了这一行:
disableSelection: true,
Run Code Online (Sandbox Code Playgroud) 如果用户打开两种相同类型的表单,则会出现csrf错误,
我自己是一个具有机器人心态的多才多艺,多任务,绝对的野兽习惯于打开多个标签并以疯狂的方式做事,csrf检查将我变成了一个正常的人.
关于这个还能做什么?
对不起,忘了提到这是关于zend framework的csrf元素
zend-framework csrf zend-form zend-form-element csrf-protection
如果我定义了以下类,
class Category {
/**
*
* @var integer $id
* @Column(name="id", type="integer",nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
*
* @ManyToMany(targetEntity="Tag")
* @JoinColumn(onDelete="SET NULL")
*/
protected $tags;
}
Run Code Online (Sandbox Code Playgroud)
我不应该通过以下方式获得与此类别相关的所有标签:
$categoryTags = $category->getTags();
Run Code Online (Sandbox Code Playgroud)
上面赋值后$ categoryTags中的对象属于Doctrine\ORM\PersistentCollection类型,而我希望它是一个数组.
我使用sql命令手动在category_tag表中添加了关联值,但我可以看到它们是有效的.
我的Tags类看起来像这样:
class Tag extends Tag{
/**
*
* @var integer $id
* @Column(name="id", type="integer",nullable=false)
* @Id
* @GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @Column(type="string",length=60,nullable=false)
* @var string
*/
protected $tag;
}
Run Code Online (Sandbox Code Playgroud) 我试图找到一种方法将任何xml feed转换为关联数组,我注意到很多其他人都在寻找相同的东西,并且有很多尝试,其中一些已经失败,我发现了以下方法,信用去
http://gaarf.info/2009/08/13/xml-string-to-php-array/
我略微改变了代码,这是结果.
function xmlNameSpaceToArray(SimpleXmlIterator $xml, $nameSpaces=Null){
$output = Null;
$preparedArray = array();
for($xml->rewind(); $xml->valid(); $xml->next()) {
$key = $xml->key();
if(!isset($preparedArray[$key])) { $preparedArray[$key] = array(); $i=0; }
else $i = count($preparedArray[$key]);
$simple = true;
foreach($xml->current()->attributes() as $k=>$v) {
$preparedArray[$key][$i][$k]=(string)$v;
$simple = false;
}
if($nameSpaces) foreach($nameSpaces as $nid=>$name) {
foreach($xml->current()->attributes($name) as $k=>$v) {
$preparedArray[$key][$i][$nid.':'.$k]=(string)$v;
$simple = false;
}
}
if($xml->hasChildren()) {
if($simple) $preparedArray[$key][$i] = xmlNameSpaceToArray($xml->current(), $nameSpaces);
else $preparedArray[$key][$i]['content'] = xmlNameSpaceToArray($xml->current(), $nameSpaces);
} else {
if($simple) $preparedArray[$key][$i] = strval($xml->current());
else $preparedArray[$key][$i]['content'] …
Run Code Online (Sandbox Code Playgroud) 有没有办法让Amazon Elastic Transcoder告知回调脚本它已完成特定视频转换的转码?
我正在开展这个让人们上传视频的项目,它有不同的步骤,每个步骤都应该从成功完成上一步开始.
我已经能够在每个步骤中触发下一步,但最后一步实际上是调用AET并指示它从S3存储桶中取出一些视频,对它们进行转码并将它们存储在不同的S3存储桶中.
所以现在我需要知道AET是否完成了它的任务,我不喜欢用某种cron作业定期检查状态,我更愿意让AET告知系统它已经完成了它的任务.
假设您有一个如下所示的数组:
$myArray []= array('firstname' => 'John' , 'lastname'=> 'Johnson');
$myArray []= array('firstname' => 'Adam' , 'lastname'=> 'Tyson');
$myArray []= array('firstname' => 'Mike' , 'lastname'=> 'Robinson');
$myArray []= array('firstname' => 'David' , 'lastname'=> 'Jackson');
Run Code Online (Sandbox Code Playgroud)
你如何根据姓氏对$ myArray进行排序?