我目前正在使用以下代码的类似版本将文件从远程服务器传输到我的 Web 服务器,然后重定向到可公开访问的 Web 位置中的文件的 Web 服务器副本。
$tempfile = "/mylocalfolder/tempfile.wav"
if (file_exists($tempfile)) {
unlink($tempfile);
}
$selectedfile = htmlspecialchars($_GET["File"]);
$filelink = '/myremotefolder/'.$selectedfile;
$connection = ssh2_connect($remote_server_ip, 22);
ssh2_auth_password($connection, 'username', 'password');
//echo $filelink.','. $tempfile;
ssh2_scp_recv($connection, $filelink, "/mylocalfolder/tempfile.wav");
header( 'Location: /mylocalfolder/recording.wav' ) ;
Run Code Online (Sandbox Code Playgroud)
我还使用他们的 api 从 amazon s3 获取一些文件。当我使用此方法时,API 将文件作为对象返回,这样我就可以使用适当的标头将其直接发送到浏览器。就像下面的例子。
// Display the object in the browser
header("Content-Type: {$result['ContentType']}");
header("Content-Type: audio/wav");
echo $result['Body'];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何从远程服务器流式传输/获取文件并将其以与底层版本相同的方式发送到浏览器,而无需在网络服务器上创建物理副本。提前谢谢了
我只是熟悉Amazon Web Services和S3 AWS CLI。
有谁知道是否可以从源中删除目标存储桶中存在的文件?
我正在尝试以下:
aws s3 sync /home/recsout s3://myfakebucketname001 --delete
Run Code Online (Sandbox Code Playgroud)
我以前使用rsync到NAS驱动器,--remove-source-files但想改用S3和AWS CLI。