我正在建立一个大型网站,允许会员上传最大20MB的内容(图像,视频)(可能略低于15MB,我们尚未确定最终上传限制但是它会介于10之间) -25MB).
我的问题是,在这种情况下我应该使用HTTP或FTP上传吗?请记住,80-90%的上传量会比cca 1-3MB更小,但有时会有些成员上传大文件(10MB +).
HTTP上传对于如此大的文件是否足够可靠,还是应该使用FTP?上传文件时,HTTP和FTP之间是否存在明显的速度差异?
我问,因为我正在使用Zend Framework,它已经有HTTP适配器用于文件上传,如果我选择FTP,我将不得不为它编写自己的适配器.
谢谢!
如何将字符串转换为数组?例如,我有这个字符串:
$str = 'abcdef';
Run Code Online (Sandbox Code Playgroud)
我想得到:
array(6) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
[4]=>
string(1) "e"
[5]=>
string(1) "f"
}
Run Code Online (Sandbox Code Playgroud) 这是我用来将*IplImage转换为jpg的代码:
IplImage* fIplImageHeader;
fIplImageHeader = cvCreateImageHeader(cvSize(160, 120), 8, 3);
fIplImageHeader->imageData = (char*) memblock;
vector<int> p;
p.push_back(CV_IMWRITE_JPEG_QUALITY);
p.push_back(10);
vector<unsigned char> buf;
cv::imencode("JPEG", fIplImageHeader, buf, p);
cvReleaseImageHeader(&fIplImageHeader);
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误:
OpenCV Error: Unspecified error (could not find encoder for the specified extension) in imencode, file /build/buildd/opencv-2.1.0/src/highgui/loadsave.cpp, line 409
Run Code Online (Sandbox Code Playgroud)
在抛出'cv :: Exception'的实例后调用终止what():/ build/buildd/opencv-2.10/src/highgui/loadsave.cpp:403:error:( - 2)找不到编码器函数imencode中指定的扩展名
这是为什么?我安装了OpenCV 2.1.这很明显jpg编码器必须在那里:
cvSaveImage("/home/richard/im.jpg", fIplImageHeader);
Run Code Online (Sandbox Code Playgroud) 我使用无服务器框架将一个Python lambda函数部署到AWS.在我的serverless.yml文件中,我已经定义了一个我需要部署到具有特定ID的VPC的功能,因为只有VPC具有从lambda函数发出一些与业务相关的请求所需的网络连接.
customer_callback:
vpc:
subnetIds:
- subnet-something
handler: myservice/event_stream.customer_callback
Run Code Online (Sandbox Code Playgroud)
在文档中,上面的示例是他们提到的将函数附加到VPC的方法:
https://serverless.com/framework/docs/providers/aws/guide/functions/
但是,该功能根本没有部署到VPC,例如我最终得到:
我试过像这样直接指定VPC ID:
customer_callback:
vpc:
id: vpc-something
handler: myservice/event_stream.customer_callback
Run Code Online (Sandbox Code Playgroud)
但这没有任何作用.这个问题的文档基本上不存在,我尝试了很多搜索,所以我最后要在这里发帖寻求帮助.
更新:
只是在更加明显的地方提及它.当我将IN更改为=时,查询执行时间从180下降到0.00008秒.可笑的速度差异.
此SQL查询需要180秒才能完成!怎么可能?有没有办法优化它更快?
SELECT IdLawVersionValidFrom
FROM question_law_version
WHERE IdQuestionLawVersion IN
(
SELECT MAX(IdQuestionLawVersion)
FROM question_law_version
WHERE IdQuestionLaw IN
(
SELECT MIN(IdQuestionLaw)
FROM question_law
WHERE IdQuestion=236 AND IdQuestionLaw>63
)
)
Run Code Online (Sandbox Code Playgroud)
每个表中只有大约5000行,所以它不应该这么慢.
我想做这样的事情:在循环中,第一次迭代将一些内容写入名为file0.txt的文件,第二次迭代file1.txt等等,只需增加数量即可.
FILE *img;
int k = 0;
while (true)
{
// here we get some data into variable data
file = fopen("file.txt", "wb");
fwrite (data, 1, strlen(data) , file);
fclose(file );
k++;
// here we check some condition so we can return from the loop
}
Run Code Online (Sandbox Code Playgroud) 我写了这个函数来获得0 ... 1之间的伪随机浮点数:
float randomFloat()
{
float r = (float)rand()/(float)RAND_MAX;
return r;
}
Run Code Online (Sandbox Code Playgroud)
但是,它总是返回0.563585.无论我运行我的控制台应用程序多少次,都是相同的数字.
编辑:
如果需要,这是我的整个申请:
#include <stdio.h>
#include <stdlib.h>
float randomFloat()
{
float r = (float)rand() / (float)RAND_MAX;
return r;
}
int main(int argc, char *argv[])
{
float x[] = {
0.72, 0.91, 0.46, 0.03, 0.12, 0.96, 0.79, 0.46, 0.66, 0.72, 0.35, -0.16,
-0.04, -0.11, 0.31, 0.00, -0.43, 0.57, -0.47, -0.72, -0.57, -0.25,
0.47, -0.12, -0.58, -0.48, -0.79, -0.42, -0.76, -0.77
};
float y[] = {
0.82, -0.69, 0.80, …Run Code Online (Sandbox Code Playgroud) 所以这是我的程序,它工作正常:
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Scanner;
import java.util.Locale;
public class ScanSum {
public static void main(String[] args) throws IOException {
Scanner s = null;
double sum = 0;
try {
s = new Scanner(new BufferedReader(new FileReader("D:/java-projects/HelloWorld/bin/usnumbers.txt")));
s.useLocale(Locale.US);
while (s.hasNext()) {
if (s.hasNextDouble()) {
sum += s.nextDouble();
} else {
s.next();
}
}
} finally {
s.close();
}
System.out.println(sum);
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在使用我正在阅读的文件的绝对路径:
s = new Scanner(new BufferedReader(new FileReader("D:/java-projects/HelloWorld/bin/usnumbers.txt")));
Run Code Online (Sandbox Code Playgroud)
当我尝试使用相对路径时出现问题:
s = new Scanner(new BufferedReader(new FileReader("usnumbers.txt")));
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Exception in …Run Code Online (Sandbox Code Playgroud) 我有一个像这样的字节数组:
lzo_bytep out; // my byte array
size_t uncompressedImageSize = 921600;
out = (lzo_bytep) malloc((uncompressedImageSize +
uncompressedImageSize / 16 + 64 + 3));
wrkmem = (lzo_voidp) malloc(LZO1X_1_MEM_COMPRESS);
// Now the byte array has 802270 bytes
r = lzo1x_1_compress(imageData, uncompressedImageSize,
out, &out_len, wrkmem);
Run Code Online (Sandbox Code Playgroud)
如何将它分成65,535字节以下的较小部分(字节数组是我想通过UDP发送的一个大图像,其上限为65,535字节)然后将这些小块连接回连续数组?
所以我在我的脚本中这样做:
import json
info = json.loads(get_info())
print info
Run Code Online (Sandbox Code Playgroud)
哪个输出:
richard@richard-desktop:~/projects/hello-python$ python main.py
{
"streams": [
{
"index": 0,
"codec_name": "mpeg2video",
"codec_long_name": "MPEG-2 video",
"codec_type": "video",
"codec_time_base": "1001/48000",
"codec_tag_string": "[0][0][0][0]",
"codec_tag": "0x0000",
"width": 1920,
"height": 1080,
"has_b_frames": 1,
"sample_aspect_ratio": "1:1",
"display_aspect_ratio": "16:9",
"pix_fmt": "yuv422p",
"level": 2,
"timecode": "00:59:59:00",
"id": "0x1e0",
"r_frame_rate": "24000/1001",
"avg_frame_rate": "10000/417",
"time_base": "1/90000",
"start_time": "0.945411"
},
{
"index": 1,
"codec_name": "pcm_dvd",
"codec_long_name": "PCM signed 20|24-bit big-endian",
"codec_type": "audio",
"codec_time_base": "1/48000",
"codec_tag_string": "[0][0][0][0]",
"codec_tag": "0x0000",
"sample_fmt": "s32",
"sample_rate": "48000", …Run Code Online (Sandbox Code Playgroud)