迭代亚马逊S3上文件夹中的对象

2024-05-05

我们有一个应用程序,用户可以创建自己的网页并托管它们。我们使用 S3 来存储静态页面。在这里,由于我们每个用户有 100 个存储桶的限制,我们决定为每个用户使用文件夹桶内的用户。

现在,如果用户想在他的域上托管他的网站,我们会向他询问域名(当他开始时,我们将其发布到我们的子域上),我必须重命名该文件夹。

S3 是一个平面文件系统,我知道实际上没有文件夹,只有分隔符/分隔值,因此我无法进入文件夹并检查它包含多少页。API 允许它一一对应,但为此我们必须知道存储桶中的对象名称。

我浏览了文档并发现了迭代器 http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/feature-iterators.html,我还没有实现。这使用guzzle https://github.com/guzzle/guzzle我没有这方面的经验,并且在实施方面面临挑战

我还有其他路可以走吗,或者我需要走这条路。


您可以通过执行以下操作为“文件夹”的内容创建迭代器:

$objects = $s3->getIterator('ListObjects', array(
    'Bucket'    => 'bucket-name',
    'Prefix'    => 'subfolder-name/',
    'Delimiter' => '/',
));

foreach ($objects as $object) {
    // Do things with each object
}

如果你只需要计数,你可以这样:

echo iterator_count($s3->getIterator('ListObjects', array(
    'Bucket'    => 'bucket-name',
    'Prefix'    => 'subfolder-name/',
    'Delimiter' => '/',
)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迭代亚马逊S3上文件夹中的对象 的相关文章

随机推荐

  • iOS WKWebView不支持本地存储

    我正在构建一个简单的 WKWebView 应用程序 该应用程序加载用 Construct HTML5 编写的游戏 游戏存储在服务器上 当我在常规浏览器 移动和桌面 中玩游戏时 游戏本身会存储在本地 并且高分也会存储在本地 重新启动游戏后不需
  • 如何在 C++ 中对字符串使用 qsort

    我想使用 qsort 函数使用 C 对字符串中的字符进行排序 include
  • 在 tweetinvi 中查找推文的 tweetID

    我对 C 编程相对较新 为学校项目自学 并决定尝试使用 TweetInvi 来实现 Twitter 功能 到目前为止 一切进展顺利 身份验证和发布已启动并运行 但我正在努力找出如何使用 DestroyTweet 方法 它和许多其他方法都需要
  • 流媒体视频文件?

    我需要流式传输 flv 文件 流媒体应该看起来像直播 我应该有一种方法可以更改目标文件 抱歉我的英语不好 如果 流式传输 的意思是 显示 Flash 视频剪辑 则 flv streaming 并不是真正的流式传输 而是正常的文件传输 即使文
  • 把自己限制在HTTP1.0有什么用吗?

    我负责构建一些工具来帮助最终用户测试为什么他们的浏览器可能无法与网站配合使用 我被告知它可能不起作用的原因之一是 需要 HTTP1 1 这一行 我浏览了大多数浏览器选项 只浏览了 IE 版本 6 及更高版本 even 9 允许您禁用 HTT
  • 将 pdfmake.js 文件导入到我的 ts 文件中

    我正在开发 vsts 网络扩展 我想要一个使用PDFmake js文件来生成一个pdf PDFmake js文件是imported to node nodules文件夹通过安装为npm install pdfmake 我想要import t
  • CocoaPods 库中的强dispatch_queue_t

    在可能使用 iOS 5 x OS X 10 7 部署目标或较新的部署目标构建的库中 我在正确定义dispatch queue t财产 大多数情况下我可以按照建议解决它here https stackoverflow com a 248460
  • 使用 C# 作为我的 DSL——这可能吗?如果可以,如何实现?

    是否可以使用 C 作为 DSL其中 C 源代码由最终用户在 TextBox 中编辑 在应用程序运行时编译 然后由已运行的应用程序调用 我问这个问题是因为在接下来的几个月里 我将需要实现一个简单的数学运算 DSL 类似于 Rachel Lim
  • 在 macOS 上运行 Comma IDE 时找不到匹配的虚拟机

    我安装了 Comma IDEthis https commaide com download链接 但当我尝试通过双击应用程序文件夹中 Finder 中的应用程序图标来运行它时 出现错误 未找到匹配的 VM 需要 Java 1 8 或更高版本
  • jQuery 无法从本地主机检索数据

    我有一个非常简单的 jQuery 来检索我最新的推文 getJSON http twitter com statuses user timeline username json count 1 function data tweet tex
  • 更改在 docker 中运行的 selenium 节点的日志级别

    我们的团队正在使用 docker 部署 selenium 网格 默认日志级别似乎设置为 INFO 我想将其设置为更高的值 严重 或完全关闭它们 我已经进行了三次尝试 但到目前为止 没有效果 方法一 从 selenium 客户端 我尝试在 D
  • Foldmethod=同时标记和语法?

    同一文件是否可以根据标记和语法使用折叠 Since foldmethod一次只能设置为一个 我认为您真正可以做到这一点的唯一方法是使用 set foldmethod expr并与foldexpr 即使如此 我也不确定它是否能够完全按照您的要
  • 如何将 SQL 参数中的字符串数组传递给 SQL 中的 IN 子句

    我正在以复杂的方式做一个逻辑 我只需要在存储过程中执行此查询 select Sizes SUM Quantity from tbl SizeBreakup where Brand brand and Combo in 1 2 我必须在 C
  • for 循环语法,其中包含 if 语句

    使用 if 语句编写 for 循环的普遍共识是什么 for int i 0 i lt hi i if some invalid condition continue if another invalid condition continue
  • 我无法在 PyCharm 下运行 Django Python pytest

    pytest portal test session starts platform darwin Python 3 6 0 pytest 3 0 6 py 1 4 32 pluggy 0 4 0 Django settings confi
  • 如果服务器在使用 dblink 时未请求密码,则非超级用户无法连接

    我想在我的应用程序中进行一些跨数据库引用 简而言之 我有两个数据库 分别称为meta 和op 我想从元到 op 数据库中的表进行一些选择查询 如下所示 但出现以下错误 我尝试了有密码和无密码 顺便一提caixa用户是非超级用户 我的目标服务
  • 值类型不完整的映射

    我收到以下错误 class Test std map
  • 为什么 Pearson 相关输出为 NaN?

    我正在尝试获取 R 中变量之间的皮尔逊相关系数 这是变量的散点图 ggplot results summary aes x D in y D ex geom point col ifelse results summary FDR lt 0
  • socket.error:[Errno 10054]现有连接被远程主机强制关闭(python2.7)

    我的套接字有问题 它运行良好 但是当我关闭客户端 关闭客户端窗口时 服务器丢失了连接 服务器需要保持打开状态并等待其他连接 while True rlist wlist xlist select select server socket o
  • 迭代亚马逊S3上文件夹中的对象

    我们有一个应用程序 用户可以创建自己的网页并托管它们 我们使用 S3 来存储静态页面 在这里 由于我们每个用户有 100 个存储桶的限制 我们决定为每个用户使用文件夹桶内的用户 现在 如果用户想在他的域上托管他的网站 我们会向他询问域名 当