首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP查看S3中是否存在对象

使用PHP查看S3中是否存在对象
EN

Stack Overflow用户
提问于 2012-06-01 09:27:40
回答 4查看 49.6K关注 0票数 44

我正在使用PHP并使用S3应用程序接口上传文件,但是在上传之前,我希望确保存储桶中不存在这个确切的文件名。

我在网上找到了一些使用"file_get_contents“的例子,但这不是意味着你必须先下载整个文件吗?通常,这些文件大约是10MB,所以在理想情况下,我不会真的想这样做。

有没有办法在不下载文件的情况下使用"file_get_contents“?

或者更好的是,也许我可以使用API请求来查看文件名是否存在?

对我来说,内容或文件大小是否相同并不重要,重要的是文件名。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-09-10 18:51:42

获取指定的存储桶中是否存在指定的亚马逊S3对象。

AmazonS3 doesObjectExist

代码语言:javascript
复制
$s3 = new AmazonS3();
$bucket = 'my-bucket' . strtolower($s3->key);

$response = $s3->doesObjectExist($bucket, 'test1.txt');

// Success? (Boolean, not a CFResponse object)
var_dump($response);
票数 70
EN

Stack Overflow用户

发布于 2014-12-03 10:33:20

尝试使用以下代码:

代码语言:javascript
复制
$s3 = new S3();

$info = $s3->getObjectInfo($bucket, $filename);
if ($info)
{
    echo 'File exists';
}
else
{
    echo 'File does not exists';
}

从亚马逊下载php的S3 SDK。有一个名为S3的类;创建一个S3对象。该对象将允许调用getObjectInfo()方法。传递您的密钥存储桶名称和文件名(通常将文件名称为S3 )。如果文件存在,getObjectInfo()方法将返回一些信息,否则该方法将返回FALSE。

票数 11
EN

Stack Overflow用户

发布于 2014-11-09 01:44:19

请注意,其他建议基于适用于PHP的AWS SDK版本1。对于版本2,您需要熟悉此处提供的最新指南:

http://docs.aws.amazon.com/aws-sdk-php/guide/latest/index.html

上面链接中的“入门”部分将帮助您安装和设置SDK,因此如果您还没有阅读这些文档,请务必花时间阅读它们。完成设置后,您需要熟悉这里提供的流包装器方法:

http://docs.aws.amazon.com/aws-sdk-php/guide/latest/feature-s3-stream-wrapper.html

最后,下面是一个简短的真实示例,说明如何在代码流中使用它。

代码语言:javascript
复制
require('vendor/autoload.php');

// your filename
$filename = 'my_file_01.jpg';
// this will use AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from env vars
$s3 = Aws\S3\S3Client::factory();
// S3_BUCKET must also be defined in env vars
$bucket = getenv('S3_BUCKET')?: die('No "S3_BUCKET" config var in found in env!');
// register stream wrapper method
$s3->registerStreamWrapper();
// does file exist
$keyExists = file_exists("s3://".$bucket."/".$filename);
if ($keyExists) {
    echo 'File exists!';
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10843327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档