标签: s3cmd

为什么上传到S3的文件具有内容类型application/octet-stream,除非我将文件命名为.html

即使我将内容类型设置为text/html,它最终也会成为S3上的application/octet-stream.

ByteArrayInputStream contentsAsStream = new ByteArrayInputStream(contentAsBytes);
ObjectMetadata md = new ObjectMetadata();
md.setContentLength(contentAsBytes.length);
md.setContentType("text/html");
s3.putObject(new PutObjectRequest(ARTIST_BUCKET_NAME, artistId, contentsAsStream, md));
Run Code Online (Sandbox Code Playgroud)

但是,如果我将文件命名为最终使用.html

s3.putObject(new PutObjectRequest(ARTIST_BUCKET_NAME, artistId + ".html", contentsAsStream, md));
Run Code Online (Sandbox Code Playgroud)

然后它工作.

我的md对象被忽略了吗?我如何以编程方式绕过这个,因为随着时间的推移,我需要上传数千个文件,因此不能只进入S3 UI并手动修复contentType.

java amazon-web-services s3cmd

17
推荐指数
3
解决办法
2万
查看次数

PUT/Sync需要s3cmd S3权限

在迁移到AWS EC2时,我想有充分理由限制我的实例的用户权限.实例需要做的一件事是访问S3上的文件并在那里写文件.但是,如果不向该用户授予所有权限,我找不到任何方法来实现此目的.

s3cmd允许我在s3桶上调用"ls"和"du"我给了策略权限,但在尝试与其中一个文件夹进行PUT /同步时总是失败并出现403错误.如果我使用我的root凭据,则传输将直接进行.

所以,我不明白为什么如果我将所有权限授予用户所说的桶,它不能PUT,但如果我给它arn:aws:s3 :::*(所有桶)那么它可以.对我毫无意义.

有没有其他人曾经处理过此事?

amazon-s3 amazon-web-services s3cmd

16
推荐指数
1
解决办法
1万
查看次数

尝试使用s3cmd在Amazon S3文件上设置元数据

我在亚马逊S3上有一个后缀为".bin.gz"的文件.我希望Web浏览器将其视为gzip压缩文件.因此,我可以进入Amazon S3 Web控制台(https://console.aws.amazon.com/s3/home)并导航到该文件并选择它.在属性下,我可以转到元数据选项卡并添加以下指令:

Content-Type: text/html
Content-Encoding: gzip
Run Code Online (Sandbox Code Playgroud)

这按预期工作.这很容易.

现在,我想在S3上进行PUT时对数百个(或可能是数百万个)文件做同样的事情.

我尝试使用带有该--add-header选项的s3cmd ,但是当我尝试设置Content-Type时,这会给我一个签名错误.此外,我很确定这样做只会影响PUT操作时发送的标头,而不会影响与文档一起存储的元数据.

所以,我正在寻找一种方法来做到这一点,理想情况下使用s3cmd.如果这是不可能的,我将不胜感激,如果有人可以建议一个能够将元数据应用于s3上的文件的python库.

必须有一种方法可以执行此操作,而无需在控制台中手动设置它.

amazon-s3 amazon-web-services s3cmd

15
推荐指数
1
解决办法
9068
查看次数

从S3存储桶下载模式匹配的条目

我有一个S3存储桶,其中存储了几个日志文件,格式为index.log.yyyy-mm-dd-01 index.log.yyyy-mm-dd-02...

yyyy for year,mm for month和dd for date.

现在我只想下载其中的一些.我看到下载整个S3存储桶?.如果我想下载整个存储桶,这篇文章的接受答案是绝对正常的,但如果我想做一些模式匹配,我该怎么办?我尝试了以下命令,但它们没有奏效:

aws s3 sync s3://mybucket/index.log.2014-08-01-* .
aws s3 sync 's3://mybucket/index.log.2014-08-01-*' .
Run Code Online (Sandbox Code Playgroud)

我还尝试使用http://fosshelp.blogspot.in/2013/06文章的POINT 7和http://s3tools.org/s3cmd-sync使用s3cmd进行下载.以下是我运行的命令:

s3cmd -c myconf.txt get --exclude '*.log.*' --include '*.2014-08-01-*' s3://mybucket/ .
s3cmd -c myconf.txt get --exclude '*.log.*' --include '*.2014-08-01-*' s3://mybucket/ .
Run Code Online (Sandbox Code Playgroud)

还有一些这样的排列.

任何人都可以告诉我为什么不发生模式匹配?或者,如果我需要使用任何其他工具.

谢谢 !!

command-line-interface amazon-s3 amazon-web-services s3cmd

13
推荐指数
1
解决办法
3239
查看次数

授予对Authenticated Users组的读取访问权限

如何为文件的Authenticated Users组授予读取权限?我正在使用s3cmd并希望在上传时这样做但我只是直接关注更改acl.我应该为http://acs.amazonaws.com/groups/global/AuthenticatedUsers投入什么?我已经尝试过AuthenticatedUsers的每一种组合.

./s3cmd setacl --acl-grant = read:http://acs.amazonaws.com/groups/global/AuthenticatedUsers s3:// BUCKET/FILE

./s3cmd setacl --acl-grant = read:AuthenticatedUsers s3:// BUCKET/FILE

amazon-s3 s3cmd

12
推荐指数
1
解决办法
4513
查看次数

使用s3cmd并行将文件上载到s3

我在服务器上有一大堆文件,我想将它们上传到S3.这些文件以.data扩展名存储,但实际上它们只是一堆jpeg,png,zip或pdf.

我已经编写了一个简短的脚本,它找到了mime类型并将它们上传到S3上,但是它运行起来很慢.有没有办法使用gnu parallel进行下面的运行?

#!/bin/bash

for n in $(find -name "*.data") 
do 
        data=".data" 
        extension=`file $n | cut -d ' ' -f2 | awk '{print tolower($0)}'` 
        mimetype=`file --mime-type $n | cut -d ' ' -f2`
        fullpath=`readlink -f $n`

        changed="${fullpath/.data/.$extension}"

        filePathWithExtensionChanged=${changed#*internal_data}

        s3upload="s3cmd put -m $mimetype --acl-public $fullpath s3://tff-xenforo-data"$filePathWithExtensionChanged     

        response=`$s3upload`
        echo $response 

done 
Run Code Online (Sandbox Code Playgroud)

此外,我确信这个代码一般可以大大改进:)反馈提示将不胜感激.

parallel-processing bash amazon-s3 s3cmd gnu-parallel

10
推荐指数
1
解决办法
6096
查看次数

S3cmd同步返回"已杀死"

我想尝试在亚马逊S3上同步几个大桶.

当我运行我的S3cmd sync --recursive命令时,我得到一个回复​​说"已杀死".

有谁知道这可能是指什么?可以在S3中同步的文件数量是否有限制?

谢谢你的帮助

amazon amazon-s3 s3cmd

9
推荐指数
1
解决办法
2297
查看次数

s3cmd sync是将错误文件远程复制到错误的位置

我将以下内容作为shell脚本的一部分,将站点文件复制到S3 CDN:

for i in "${S3_ASSET_FOLDERS[@]}"; do
    s3cmd sync -c /path/to/.s3cfg --recursive --acl-public --no-check-md5 --guess-mime-type --verbose --exclude-from=sync_ignore.txt /path/to/local/${i} s3://my.cdn/path/to/remote/${i}
done
Run Code Online (Sandbox Code Playgroud)

说S3_ASSET_FOLDERS是:

("一二/")

并说这两个文件夹都包含一个名为..."script.js"的文件

并说我已经对两个/ script.js进行了更改- 但没有触及一个/ script.js

运行上面的命令将首先将文件从/ one /复制到正确的位置,虽然我不知道为什么它认为它需要:

信息:发送文件'/path/to/local/one/script.js',请稍候...文件'/path/to/local/one/script.js'存储为's3://my.cdn/ path/to/remote/one/script.js'(在0.1秒内为13551字节,168.22 kB/s)[1 of 0]

...然后是第二个文件夹的远程复制操作:

remote copy:two/script.js - > script.js

它在做什么?为什么??那些文件甚至都不相似.不同的修改时间,不同的校验和.没关系.

我最终得到一个带有两个不正确文件的s3存储桶./ two /中应该更新的文件没有.并且/ one /中不应该更改的文件现在被/two/script.js的内容覆盖

很明显,我做了一些奇怪的事,因为我没有看到其他人有同样的问题.但我不知道是什么?

bash amazon-s3 s3cmd

9
推荐指数
1
解决办法
1657
查看次数

如何在Amazon S3中找到零字节文件

有没有办法以编程方式在Amazon S3中找到零字节文件?

桶的总大小超过100G,
我不太可能同步回服务器,然后做一个

find . -size 0 -type f
Run Code Online (Sandbox Code Playgroud)

amazon-s3 s3cmd

8
推荐指数
2
解决办法
4380
查看次数

在S3上压缩整个目录

如果我在S3上有一个包含约5000个小文件的目录,有没有办法轻松压缩整个目录并将生成的zip文件留在S3上?我需要这样做,而不必亲自手动访问每个文件.

谢谢!

amazon-s3 amazon-web-services s3cmd

8
推荐指数
2
解决办法
2万
查看次数