QA@IT

s3のinvalid characterを含むファイルを発見し、修正もしくは削除したい

2666 PV

Amazon S3を使っています。railsアプリケーションから、paperclipを通じ、S3へファイルをアップロードしているのですが、ファイルを入れているディレクトリをS3上で開こうとすると、

An unexpected error has occurred

という表示が出ます。
いろいろ調べてみると、invalid characterを含むファイル名の場合、このようなエラーが出る(?)ようです。

GUIから探せないので、CUIで探そうと、s3cmdを入れてみましたが、s3cmdのlsコマンドを叩くと、

    An unexpected error has occurred.
  Please report the following lines to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Problem: ParseError: reference to invalid character number: line 2, column 187
S3cmd:   1.5.0-alpha1

Traceback (most recent call last):
  File "/usr/local/bin/s3cmd", line 2037, in <module>
    main()
  File "/usr/local/bin/s3cmd", line 1978, in main
    cmd_func(args)
  File "/usr/local/bin/s3cmd", line 104, in cmd_ls
    subcmd_bucket_list(s3, uri)
  File "/usr/local/bin/s3cmd", line 134, in subcmd_bucket_list
    response = s3.bucket_list(bucket, prefix = prefix)
  File "/Library/Python/2.7/site-packages/S3/S3.py", line 250, in bucket_list
    current_list = _get_contents(response["data"])
  File "/Library/Python/2.7/site-packages/S3/S3.py", line 237, in _get_contents
    return getListFromXml(data, "Contents")
  File "/Library/Python/2.7/site-packages/S3/Utils.py", line 82, in getListFromXml
    tree = getTreeFromXml(xml)
  File "/Library/Python/2.7/site-packages/S3/Utils.py", line 72, in getTreeFromXml
    tree = ET.fromstring(xml)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1282, in XML
    parser.feed(text)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1624, in feed
    self._raiseerror(v)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1488, in _raiseerror
    raise err
ParseError: reference to invalid character number: line 2, column 187

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    An unexpected error has occurred.
    Please report the above lines to:
   s3tools-bugs@lists.sourceforge.net
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

のようになります。
該当ファイルを探しだし、ファイル名を修正もしくは、削除するにはどのようにしたらいいのでしょうか?
よろしくお願い致します。

回答

s3cmd fixbucket s3://バケット名

これは試しましたか?
上手くいけば不正文字列が修正されます。

編集 履歴 (0)
  • 試してみます。ありがとうございます :) -
ウォッチ

この質問への回答やコメントをメールでお知らせします。