热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用php将文件上传到AWSS3-UploadfiletoAWSS3usingphp

IamtryingtocreateaphpscriptwhichwillbeabletouploadatextfiletomyASWS3bucket.我正在

I am trying to create a php script which will be able to upload a text file to my ASW S3 bucket.

我正在尝试创建一个php脚本,它可以将文本文件上传到我的ASW S3存储桶。

I have tried the method which is there on AWS site but sadly that ain't proper, I mean it's not end to end.

我已经尝试过AWS网站上的方法,但遗憾的是这不合适,我的意思是它不是端到端的。

I have installed the AWS PHP SDK on my instance.

我在我的实例上安装了AWS PHP SDK。

Then I did what's written in the sample code i.e.

然后我做了示例代码中写的内容,即

putObject(array(
    'Bucket'       => $bucket,
    'Key'          => $keyname,
    'SourceFile'   => $filepath,
    'ContentType'  => 'text/plain',
    'ACL'          => 'public-read',
    'StorageClass' => 'REDUCED_REDUNDANCY',
    'Metadata'     => array(    
        'param1' => 'value 1',
        'param2' => 'value 2'
    )
));

echo $result['ObjectURL'];

?>

Obviously, I haven't added the aws key nor the aws secret key so it won't work. But then nothing is specified in the tutorial either. So am kinda lost.

显然,我没有添加aws密钥和aws密钥,所以它不起作用。但是,教程中也没有指定任何内容。所以有点失落。

Secondly, I tried using this code :

其次,我尝试使用此代码:

It's also not working.

它也不起作用。

Thirdly, I tried this article.

第三,我试过这篇文章。

It's working when am using it with html but I am not really able to create a php only script where I can just specify the file location, and the file get's uploaded to the server.

当它与html一起使用时它正在工作,但我真的不能创建一个只有php的脚本,我可以只指定文件位置,并将文件get上传到服务器。

Any help is highly appreciated. I searched a lot, but couldn't find anything useful.

任何帮助都非常感谢。我搜索了很多,但找不到任何有用的东西。

1 个解决方案

#1


1  

Just a guess, but did you add your credentials inside your HTML code using hidden inputs? Cause I just had a very quick look at this page: https://aws.amazon.com/articles/1434/ and it seems like you can set your credentials using HTML. And my guess is the class will automatically take care of that.

只是一个猜测,但您是否使用隐藏的输入在HTML代码中添加了凭据?因为我只是快速浏览一下这个页面:https://aws.amazon.com/articles/1434/,好像你可以使用HTML设置你的凭据。我的猜测是班级会自动处理。

If my guess is right, you do need to add the credentials to your instance:

如果我的猜测正确,您需要将凭据添加到您的实例:

// Instantiate the client.
$s3 = S3Client::factory();

like

喜欢

// Instantiate the client.
$s3 = S3Client::factory(array(
  'version' => 'latest',
  'region'  => 'us-west-2', //add correct region
  'credentials' => array(
    'key' => ,
    'secret'  => 
  )
));

It probably depends on the version of the sdk you're using, whether you need above mentioned code or this one (notice the missing credentials array):

它可能取决于您正在使用的sdk的版本,无论您是否需要上述代码或此代码(请注意缺少的凭证数组):

// Instantiate the client.
$s3 = S3Client::factory(array(
  'version' => 'latest',
  'region'  => 'us-west-2', //add correct region
  'key' => ,
  'secret'  => 
));

EDIT: Just to show what exactly worked in my case, this is my complete code. The path I executed: http://myurl.com/index.php?path=./test.txt

编辑:只是为了显示我的案例究竟有用,这是我的完整代码。我执行的路径:http://myurl.com/index.php?path =。/ test.txt

code:

码:

require __DIR__ . '/vendor/autoload.php';

use Aws\S3\S3Client;

$bucket = 'sdl-images';
$keyname = '*** Your Object Key ***';
// $filepath should be absolute path to a file on disk                      
$filepath = $_GET['path'];

// Instantiate the client.
$s3 = S3Client::factory(array(
  'version' => 'latest',
  'region'  => ,
  'credentials' => array(
    'key' => ,
    'secret'  => 
  )
));

// Upload a file.
$result = $s3->putObject(array(
    'Bucket'       => $bucket,
    'Key'          => $keyname,
    'SourceFile'   => $filepath,
    'ContentType'  => 'text/plain',
    'ACL'          => 'public-read',
    'StorageClass' => 'REDUCED_REDUNDANCY'
));

echo $result['ObjectURL'];

推荐阅读
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • 开发日志:高效图片压缩与上传技术解析 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 2.2 组件间父子通信机制详解
    2.2 组件间父子通信机制详解 ... [详细]
  • 类加载机制是Java虚拟机运行时的重要组成部分。本文深入解析了类加载过程的第二阶段,详细阐述了从类被加载到虚拟机内存开始,直至其从内存中卸载的整个生命周期。这一过程中,类经历了加载(Loading)、验证(Verification)等多个关键步骤。通过具体的实例和代码示例,本文探讨了每个阶段的具体操作和潜在问题,帮助读者全面理解类加载机制的内部运作。 ... [详细]
  • 如何在PHP中准确获取服务器IP地址?
    如何在PHP中准确获取服务器IP地址? ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
author-avatar
浐灞半岛商业_318
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有