使用Guzzle PHP将s3文件用于多部分/表单数据上传

麦克风

我正在尝试获取Amazon S3上托管的文件,并使用Content-Type:multipart / form-data发布请求将其上传到另一台服务器。我可以使用Curl --form它,但是我不确定如何使S3文件表现得像本地文件一样,以便可以执行类似的操作。

curl -F "file=@localfile;filename=nameinpost" url.com

我已设置好枪口,以便可以像这样使用流包装器

$this->guzzleClient->registerStreamWrapper(); $data = file_get_contents('s3://buck/test-file.jpg');

如果我可以使此流正常工作,那还是很棒,还是只能使用本地文件?做这种事情的最优化方法是什么?

麦克风

我想出了这样的东西。

//...configure an s3client
$this->s3client->registerStreamWrapper();

$filename = sys_get_temp_dir() .'/'. $unique_name;
$handle = fopen($filename, 'w+');
$bytes_written = fwrite( $handle, file_get_contents('s3://bucket/test-file.jpg'));

//...configure a Guzzle client

//Guzzle 3.0
$request = $this->client->post('image')->addPostFile('images', $filename);
$response = $request->send();

//Guzzle 4.0
$request = $this->client->createRequest('POST', 'images');
$request->getBody()->addFile(new PostFile('image', $handle));
$response = $this->client->send($request);

//remove the file
unlink($filename);

Guzzle 4.0还具有一些较新的功能,可以直接使用流,而不必创建此临时文件。但是,我无法通过期望在http://www.faqs.org/rfcs/rfc1867.html之后上传基于表单的文件的服务来使用此功能如果可以使用流,那就更好了!

有关更多详细信息,请参见http://mtdowling.com/blog/2014/03/15/guzzle-4-rc上的“更好的POST文件支持” ,从版本3到版本4的过渡确实使我有些困惑。确保您知道客户使用的是哪个版本,并且正在阅读该版本的文档:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用HTTPWebrequest上传文件(多部分/表单数据)

使用 PowerShell 上传多部分/表单数据文件

使用Guzzle上传文件

如何使用表单数据直接将多个文件上传到Amazon S3?

使用多部分/表单数据上传图像

如何使用antd上传发送多部分/表单数据

在文件上传中使用curl来处理多部分/表单数据

使用 UploadFile 进行直接文件上传,无需多部分/表单数据请求

使用WSO2 API管理器上传多部分表单数据文件?

使用多部分表单数据上传文件时,我缺少什么?

无法在iOS中使用NSURLSession多部分表单数据上传文件

使用Python通过POST多部分表单数据上传文件

使用多部分/表单数据和文件上传时,Spring Webflow-IllegalStateException

使用多部分/表单数据将图像从移动应用上传到API

如何使用Guzzle将文件以“多部分”类型上传到GoogleDrive?

将文件从AWS Lambda(Python)中的多部分/表单数据上传到S3

使用 Guzzle 下载文件

如何在iOS,Swift3,Alamofire 4中使用多部分表单数据将图像作为参数上传以及其他参数

使用RestRserve的多部分/表单数据

使用 php 中的 Guzzle 从 Couchdb 获取数据

使用PHP和Guzzle传输远程文件

PHP 使用 Guzzle 获取 JSON Web Token

使用Guzzle 6将文件上传到API端点

角度8,上传(使用后期多部分/表单数据)FileReader.readAsDataURL的结果

使用JSON asp.net核心api上传多部分/表单数据图像

使用AFNetworking多部分表单数据上传多张图片不起作用

如何在Swift中使用嵌套的JSON参数上传多部分表单数据?

如何使用 org.glassfish.jersey.media.multipart 从 Java 将内容和文件作为多部分表单数据发送?

如何在PHP上使用curl发出文件的多部分/表单数据请求和重复键