当前位置: 首页 > 知识库问答 >
问题:

AWS S3文件上载:找不到S3Client类

韦衡
2023-03-14

我有一个很大的functions.php文件,其中包含我在应用程序中使用的所有函数。在它的顶部,我包含了use aws\s3\s3client;名称空间。在文件的唯一内容下面是一个函数的大列表。

我有一个名为uploadfile的函数,它最初只是将文件加载到本地磁盘并将一条记录插入数据库。现在我想把文件上传到AWS S3桶中,但是当我尝试使用AWS代码时,我在这里找到了:http://docs.AWS.amazon.com/amazons3/latest/dev/uploadobjsingleopphp.html

Fatal error: Class 'Aws\S3\S3Client' not found in C:\wamp\www\project\functions.php

下面是我的本地实现:

function uploadFile($file_name, $target_directory, $files = null) {
    $bucket = getS3Bucket();
    $keyname = getS3Key();
    // $filepath should be absolute path to a file on disk
    $filepath = $file_name;

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

    // Upload a file.
    $result = $s3->putObject(array(
        'Bucket'       => $bucket,
        'Key'          => $keyname,
        'SourceFile'   => $file_name,
        'ContentType'  => 'text/plain',
        'ACL'          => 'public-read',
        'StorageClass' => 'REDUCED_REDUNDANCY',
        'Metadata'     => array(
            'param1' => 'value 1',
            'param2' => 'value 2'
        )
    ));

    return $result;
}

我似乎面临着一个问题,那就是如何使用S3 API和我的过程代码。有没有一种方法来处理这件事,而不必重新编写所有的地方,我做文件上传?(换句话说,我将对uploadfile函数进行任何所需的更改,但我不愿意重写该函数的每个实现。)

共有1个答案

曹季同
2023-03-14

听起来问题是您没有在functions.php中包含任何内容来启用SDK类的自动加载。您包含的内容将取决于您安装SDK的方式。如果您使用了Composer,那么要使用的自动装入器将位于 /vendor/autoload.php 中。您可以查看SDK的入门指南,了解如何使用其他安装方法(例如,aws.pharaws.zip)。

 类似资料:
  • 文件名的开始是相同的,但结束是动态的,每次我点击下载时都会改变 我所做的: 你能帮忙吗

  • 问题内容: 我收到以下错误: 我的代码是: Windows 7,64位。Python 3.x最新,稳定。 有任何想法吗? 谢谢, 问题答案: 当命令是内置的shell时,请在调用中添加“ shell = True”。 例如,您将输入: 引用文档: 在Windows上唯一需要指定shell = True的时间是将要执行的命令内置到shell中(例如dir或copy)。您不需要shell = True

  • jar是用“meta-inf”文件夹中的清单文件创建的。清单文件(为了查看目的删除了类路径中的一些jar条目): 文件夹结构: 我正在命令提示符下使用'java-jar application.jar mypkg.main'。 有人能告诉我是什么造成的错误和如何解决它吗?

  • 问题内容: 我最近一直在开发一个程序,该程序可以从Java程序编译并运行C ++程序,我已经使一切基本正常(或至少据我所知),但是后来我注意到有些东西被打印到错误流中: 如您所见,如果我通过SSH而不是Java代码进行操作,它会起作用吗? Java代码: 感谢您的任何帮助,它已得到批准! 问题答案: 告诉你问题所在。 您的一级引号过多,因此您正在寻找而不是。 该的Runtime.exec文档说:

  • 在spring Java框架中,我使用context.xml文件创建bean,然后用加载它。 我的程序抛出异常。 文件存在。我使用Gradle进行依赖关系管理,并且我的src文件夹(文件所在的位置)在intellij中标记为resource。我知道由于某种原因,即使我的src文件夹应该包含在classpath变量中,但gradle run任务只是不能从这里抓取它。 当我使用时,所有的工作都很好,但

  • PhpStorm 2021.1.1 Mac M1 11.3 当我尝试使用或查找文件时,PhpStorm未能找到该文件。似乎正在尝试从目录,而不是在项目目录中搜索。 我试图< code >文件|无效缓存,运气不好。有人能帮忙吗?