在php中使用file_get_contents同时下载多个文件?
UDDATE:这是一个S3桶问题(见答案) 我希望上传一些代码,从S3 bucket读取文件,S3 bucket使用file_get_contents命令一次下载一个文件 开始在php中使用file_get_contents同时下载多个文件?,php,amazon-s3,Php,Amazon S3,UDDATE:这是一个S3桶问题(见答案) 我希望上传一些代码,从S3 bucket读取文件,S3 bucket使用file_get_contents命令一次下载一个文件 开始 file_get_contents(s3://file1.json) 等待完成,然后开始下一次下载: file_get_contents(s3://file2.json) 我想让他们立刻开始,以节省时间。像这样: 同时启动两个: file_get_contents(s3://file1.json) file_get_
file_get_contents(s3://file1.json)
等待完成,然后开始下一次下载:
file_get_contents(s3://file2.json)
我想让他们立刻开始,以节省时间。像这样:
同时启动两个:
file_get_contents(s3://file1.json)
file_get_contents(s3://file2.json)
等待他们同时完成
我见过多次curl请求,但在这个主题上没有文件内容,可能吗
编辑:目前我看到的代码使用s3://这似乎不适用于curl。这是一种获取Amazon S3存储桶的方法
EDIT2:当前代码的示例:
function get_json_file( $filename = false ){
if(!$filename) return false;
// builds s3://somefile.on.amazon.com/file.json
$path = $this->get_json_filename( $filename );
if(!$filename || !file_exists($path)){
return false;
}
elseif(file_exists($path)) {
$data = file_get_contents($path);
}
else $data = false;
return ( empty( $data ) ? false : json_decode( $data , true ));
}
答:S3安全,需要特殊URI 谢谢你们的回复。今天早些时候,当我问这个问题时,我的回答有点离谱 这是交易,我们使用的php版本不允许线程。因此,要请求多个URL,需要使用multi-curl选项。s://以某种方式处理了一个我以前错过的S3类文件。因此有了一个奇怪的名字 同样重要的是,如果您不关心保护S3上的数据,您可以将其公开,而不存在此问题。在我的例子中,需要对数据进行某种程度的保护,以便在URI中需要一些东西 您可以使用Amazon的S3类从S3上的URI和bucket名称生成安全链接。这将返回与bucket一起使用的正确URL。S3类可以手动下载,也可以通过laravel中的composer安装。它要求您安装一个具有密钥的用户,以便在AWS控制台中访问此功能
$bucketName = "my-amazon-bucket";
$uri = "/somefile.txt"
$secure_url = $s3->getObjectUrl($bucketName, $uri, '+5 minutes');
这将生成一个有效的URL来访问S3上的文件,该文件可以与curl等一起使用
https://domain.s3.amazonaws.com/bucket/filename.zip?AWSAccessKeyId=myaccesskey&Expires=1305311393&Signature=mysignature
现在我相信你知道每个人心中的问题,什么是
s3
?常数?因为,:
是变量或常量的无效命名。如果您希望一个脚本使用多个线程,请使用curl或某种异步includefile\u get\u contents()
只是一个来自资源的get请求。s3://由于某种原因,它可以正常工作,这是Amazon获取数据的私有方式。我不能使用s3://来访问它,因为它看起来像是curl;php-f downloader.php file2.json
?这是一个想法,但实际上它只需要读入一个变量。