小编Yas*_*984的帖子

在AWS上托管用户上传视频的最佳方法

因此,我正在一个网站上提供用户上传的视频,所有基础架构都在亚马逊上。我正在寻找一个好的工作解决方案,这就是我的想法

  1. 拥有一个EC2 Instant,可使用PHP处理将文件上传到其EBS卷的操作
  2. 将视频文件传输到S3
  3. 使Amazon Elastic Transcoder将视频文件从S3转换为适当的格式,然后将它们存储回S3
  4. 使用CloudFront将转换后的视频文件提供给公众

首先,您对此有何看法?有没有更简单的方法可以达到相同或更好的效果?

其次,我现在的主要问题是将文件传输到S3,我已经尝试过s3fs来做到这一点,但是在大型文件传输中却遇到了各种奇怪的问题,这使我放弃了s3fs。

为了响应最快/最佳方式,将数据从S3复制到EC2?有人建议使用EBS卷,但是我不确定是否可以挂载EBS,然后也可以访问S3上的相同数据。

任何帮助表示赞赏

amazon-s3 amazon-ebs amazon-cloudfront

5
推荐指数
1
解决办法
2457
查看次数

让人们在AWS负载平衡环境中上传文件的最佳方法是什么?

假设您在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,我不能这样做的原因是

  1. 大约有100万张图片和100种尺寸,因此我们正在寻找大量要转换的文件
  2. 可能每天都会添加新尺寸,因此调整第一个策略不起作用

amazon-s3 amazon-web-services distributed-filesystem glusterfs

5
推荐指数
1
解决办法
411
查看次数

Zend_Form csrf验证ajax查询

这是我如何将csrf添加到表单中

$this->addElement('hash', 'csrf', array('ignore' => false));

当发生这种情况时会创建会话,然后当用户发送ajax请求时,通过创建表单实例来验证请求中的值,并且自初始请求开始以来,表单始终对第一个ajax请求有效.创建了html输出,

当第二次发送ajax请求时会发生不同的事情,

该表单的实例具有与原始表单不同的csrf值,并且当我的代码完成时,最初创建的会话也被销毁,因此没有会​​话来检查接收到的值,因此表单不会验证并发生以下错误.

No token was provided to match against

事件的哪些想法,表单的csrf值会自动存储在会话中?

validation ajax zend-framework csrf

4
推荐指数
1
解决办法
1988
查看次数

md5是一个内射函数吗?

md5哈希算法是一个内射函数吗?意味着它将为任何给定的输入生成唯一的输出?

如果没有,是否有其他类似的哈希算法是单射的?

md5 terminology

4
推荐指数
2
解决办法
1222
查看次数

你能改变Jira中的字段顺序吗?

是否可以更改Jira中出现的字段顺序?

jira

4
推荐指数
1
解决办法
3877
查看次数

MongoDB搜索使用日期范围和另一个条件

我正在尝试查询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)

php mongodb

4
推荐指数
1
解决办法
8933
查看次数

如何在ext js中打开网格上的多选复选框模式

我正在尝试这个: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)

datagrid extjs extjs4

3
推荐指数
1
解决办法
7135
查看次数

将csrf添加到表单中是不是有根本错误?

如果用户打开两种相同类型的表单,则会出现csrf错误,

我自己是一个具有机器人心态的多才多艺,多任务,绝对的野兽习惯于打开多个标签并以疯狂的方式做事,csrf检查将我变成了一个正常的人.

关于这个还能做什么?

对不起,忘了提到这是关于zend framework的csrf元素

zend-framework csrf zend-form zend-form-element csrf-protection

2
推荐指数
1
解决办法
262
查看次数

Doctrine2多对多不返回数组

如果我定义了以下类,

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)

上面赋值后$ c​​ategoryTags中的对象属于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)

php doctrine-orm

2
推荐指数
1
解决办法
3684
查看次数

PHP将XML转换为数组

我试图找到一种方法将任何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)

php xml parsing simplexml

1
推荐指数
1
解决办法
7768
查看次数

我如何知道Amazon Elastic Transcoder是否已完成转码

有没有办法让Amazon Elastic Transcoder告知回调脚本它已完成特定视频转换的转码?

我正在开展这个让人们上传视频的项目,它有不同的步骤,每个步骤都应该从成功完成上一步开始.

我已经能够在每个步骤中触发下一步,但最后一步实际上是调用AET并指示它从S3存储桶中取出一些视频,对它们进行转码并将它们存储在不同的S3存储桶中.

所以现在我需要知道AET是否完成了它的任务,我不喜欢用某种cron作业定期检查状态,我更愿意让AET告知系统它已经完成了它的任务.

amazon-web-services

1
推荐指数
1
解决办法
2897
查看次数

PHP根据数组中的索引对数组进行排序

假设您有一个如下所示的数组:

$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进行排序?

php arrays sorting asort

0
推荐指数
1
解决办法
3935
查看次数