是否可以使用aws sdk复制具有不同名称的aws s3文件夹?

时间:2018-08-06 14:24:17

标签: amazon-web-services api amazon-s3 copy aws-php-sdk

我想使用php aws sdk复制一个具有不同名称的s3文件夹。有没有办法做到这一点。我没有任何代码可以复制文件夹,而只能复制单个文件。

2 个答案:

答案 0 :(得分:0)

我不是PHP开发人员,但是考虑到我使用的API,您将list all files并使用copy object,如PHP SDK文档here和{{3 }}。

要列出,您可以使用<FormControl classes={myClasses.formControl} > <InputLabel htmlFor='country' classes={myClasses.inputLabel} > Select country </InputLabel> <Select value={countryCode} onChange={onInputChange} inputProps={{ name: 'countryCode', id: 'country', }} classes={myClasses.select} > <MenuItem value='US'>United States</MenuItem> <MenuItem value='GB'>United Kingdom</MenuItem> <MenuItem value='FR'>France</MenuItem> </Select> </FormControl> 参数在所需的文件夹中进行设置和列出。

要进行复制,您需要查找的参数为PrefixContentSourceKey是“源存储桶的名称和源对象的键名,以斜杠(/)分隔”。该对象可以是您要复制的文件夹。 ContentSource参数是所需结果对象的名称。

两者都可以列出所有内容并正确复制。还有更多对您有用的参数,例如列表存储区中的Key,可以更好地进行过滤。

如果您可以直接使用here,则有两种选择。一种是使用AWS CLI命令或s3 sync。使用它们,您可以使用所需的文件夹名称直接复制,从存储桶到存储桶,从本地到存储桶,从存储桶到本地。使用Delimiter命令,使用cp选项循环遍历指定的目录或前缀。

答案 1 :(得分:0)

使用CLI,当与参数--recursive一起传递时,以下cp命令以递归方式将指定目录下的所有文件复制到指定的存储区和前缀,同时使用--exclude参数排除某些文件

aws s3 cp myDir s3://mybucket/ --recursive

请在PHP SDK中查找相同的内容