草庐IT

s3DistCp

全部标签

php - Amazon S3 SDK PHP doesObjectExist() 问题

我已经重写了这个问题以使其更清楚,因为我已经更新了它。我在使用AmazonAWSS3PHPSDK时遇到问题。我只是想检查文件是否存在。使用此PHP脚本:AWS_ACCESS_KEY_ID,'secret'=>AWS_SECRET_KEY));$key='profile/avatar/80745d03-c295-4205-bd82-58161f2fd2d1-320.jpg';$result=$client->doesObjectExist(AWS_S3_BUCKET,$key);var_dump(AWS_S3_BUCKET);var_dump($key);var_dump($result

php - 使用 PHP 删除 Amazon S3 中的文件夹

我刚开始试用AmazonS3来托管我网站的图片。我正在使用官方的AmazonAWSPHPSDK库。问题:如何删除S3“文件夹”中的所有文件?例如,如果我有一个名为images/2012/photo.jpg的文件,我想删除所有文件名以images/2012/开头的文件。 最佳答案 从S3中删除文件夹及其所有文件的最佳方法是使用APIdeleteMatchingObjects()$s3=S3Client::factory(...);$s3->deleteMatchingObjects('YOUR_BUCKET_NAME','/some/

php - Amazon S3 为每个对象创建唯一键

我的应用用户将他们的文件上传到一个存储桶。如何确保我的S3存储桶中的每个对象都有一个唯一的key以防止对象被覆盖?目前我在将文件发送到S3之前在我的php脚本中使用随机字符串加密文件名。为了便于讨论,我们假设上传者找到了一种在上传时操纵文件名的方法。他想用banana的图片替换我网站上的所有图片。.如果加密失败,防止覆盖S3中的文件的好方法是什么?编辑:我认为版本控制不起作用,因为在显示存储桶中的图像时我无法在图像URL中指定版本ID。 最佳答案 您是在加密还是散列?如果您使用的是md5或sha1哈希,攻击者很容易发现哈希冲突并让您

php - 亚马逊 S3-x-amz-meta

我正在通过PHP将照片上传到AmazonS3存储桶。到目前为止一切正常。我的问题是关于x-amz-meta。我会使用x-amz-meta键/值对来存储数据,例如上传者的用户ID及其帐户类型(免费、付费等)吗?或者我是否将其存储为常规元数据,而不是前缀为x-amz-meta?目前照片的示例元数据如下所示:Key:x-amz-meta-user-idValue:1Key:x-amz-meta-user-typeValue:freeKey:Content-TypeValue:image/jpeg这有意义吗?但愿如此。只是检查我是否以正确的方式存储了这些元数据。谢谢!jack

php - 使用脚本在 Amazon S3 存储桶中创建子目录

我在以下链接中找到了用于在amazons3中创建存储桶并维护该存储桶中的文件的脚本。http://net.tutsplus.com/tutorials/php/how-to-use-amazon-s3-php-to-dynamically-store-and-manage-files-with-ease/但我想在amazons3存储桶中创建子目录,并且必须维护这些目录中的文件。任何人都可以告诉我是否可以使用api。如果可能,请告诉我怎么做? 最佳答案 是的,这应该很容易。而不是给予$s3->putObjectFile($fileTe

php - Amazon S3 - 如何检查预签名 URL 是否过期?

如果我生成的预签名URL已过期,我是否应该执行get_headers()(在PHP中)以查看是否抛出403Forbidden错误,否则使用同一个网址?或者这是一个坏主意,因为它是一个不必要的GET请求?我应该总是每次都重新生成一个新的预签名URL吗?我有点困惑,因为似乎没有太多关于此的信息。 最佳答案 URL有它的过期时间。签名版本2https://bucket.s3.amazonaws.com/foo.txt?AWSAccessKeyId=AKIAABCDEFGHIJK&Expires=1508608760&Signature=x

php - 使用 PHP S3 类的 RequestTimeTooSkewed 错误

这是我的第一个PHP项目,所以我真的完全不懂PHP。我想做的是使用PHPS3类将文件上传到S3存储桶。一个示例代码片段昨天可以正常工作,但当我今天再次开始使用它时,几乎完全相同的代码停止工作了。现在我只收到putObject函数返回的以下错误:警告:S3::putObject():RequestTimeTooSkewed请求时间与当前时间之间的差异太大。在/vagrant/LifeInYourWay/S3.php第222行我在一些地方读到服务器时间可能导致错误,所以我将服务器时间更改为America/New_York,但仍然得到同样的结果。我的PHP代码是:if(!class_exis

php - 使用 Amazon S3 PHP SDK 重命名文件

我正在努力使用AmazonS3SDK重命名同一存储桶中的文件。我指的是copyobject在API文档中。这是我的调用,但它一直返回“指定的存储桶不存在”。$clients=S3Client::factory(array('key'=>'key','secret'=>'secret'));try{$result=$clients->copyObject(array('ACL'=>'private',//Bucketisrequired'Bucket'=>'david1982.audio',//CopySourceisrequired'CopySource'=>'mp3/music.mp

php - Laravel s3 多个桶

我的Laravel应用程序需要将存在于多个存储桶中的文件同时处理到单个session中。因此,我找不到将当前存储桶更改多次的方法,因为我的.env文件是这样的:S3_KEY='MY-KEY'S3_SECRET='MySeCret'S3_REGION='us-east-1'S3_BUCKET='my-first-used-bucket'我在某个地方找到了可以这样做的地方:Config::set('filesystems.disks.s3.bucket','another-bucket');但它只工作一次。我需要的是这样的:Storage::disk('s3')->put('/bucket

php - 仅允许注册用户从我的 Amazon S3 存储桶中下载

我正在构建一个PHP网站,该网站会将其内容文件保存在AmazonS3上。网站文件(带有PHP代码)托管在传统服务器上。用户将在网站上注册,注册并登录后,他们将可以访问S3上的文件。问题是,如何只让登录用户下载文件,不让其他人下载?AWSIAM是否必须以某种方式参与?我不想要过期的URL。我只想向特定用户授予文件访问权限,并且我不希望他们在任何时间段内与其他任何人共享链接。将来我还想限制注册用户对文件的访问权限——根据用户帐户的类型,用户可以访问不同的文件。提前感谢回复! 最佳答案 这可以做到...我使用ROR而不是PHP,我的应用程