PHP CURL PUT из потоковой обертки Amazon S3 (tcp stream)
Я пытаюсь (PHP) CURL PUT файл из Amazon S3 в Vimeo, используя потоковую оболочку S3 (s3://...)
и получить следующую ошибку:
curl_setopt_array (): не может представлять поток типа tcp_socket/ssl как ФАЙЛ STDIO в [...]
Есть ли способ отменить удаленный файл? Это отправка опций:
$curl_opts = array(
CURLOPT_PUT => true,
CURLOPT_INFILE => $file, // this refers to 's3://path-to-object'
CURLOPT_INFILESIZE => $size,
CURLOPT_UPLOAD => true,
CURLOPT_HTTPHEADER => array('Expect: ', 'Content-Range: replaced...')
);
1 ответ
Решение
Сохраните файл на свой локальный сервер, прежде чем положить его:
$file = tempnam(sys_get_temp_dir(), "foo");
$data = file_get_contents("s3://path-to-object");
$size = strlen($data);
file_put_contents($file, $data);
$curl_opts = array(
CURLOPT_PUT => true,
CURLOPT_INFILE => $file, // this refers to 's3://path-to-object'
CURLOPT_INFILESIZE => $size,
CURLOPT_UPLOAD => true,
CURLOPT_HTTPHEADER => array('Expect: ', 'Content-Range: replaced...')
);