[小ネタ]CloudShellのダウンロード機能では0バイトのファイルをダウンロードできません

CloudShellでの検証中にCloudShellのファイルダウンロード機能経由では0バイトファイルをダウンロードすることができないことを発見しました。0バイトファイルをアップロードする際も想定通りアップロードをすることはできませんでした。
2021.12.24

初めに

みなさん、メリークリスマス。

東京オフィス コンサル部の芦沢(あしさん)です。

主題の件について、おもしろいなと思ったのでブログにしてみました。

別件でCloudShellを長時間触っていた時に見つけた仕様?のようなものです。

いきなりまとめ

  • CloudShell上にある0Byteファイルは、CloudShellのファイルダウンロード機能を使ってもダウンロードできない(ダウンロード処理に失敗する)
  • ローカル上の0Byteファイルを、CloudShellのファイルアップロード機能を使ってアップロードすると、アップロードには成功するがファイルにエラーが追記される(0Byteファイルではなくなる)

やってみた

※注意※ IAM権限はCloudShellFullAccess相当の権限が必要です。


まず、CloudShellを起動します。


任意の場所に0バイトファイルを用意します

[cloudshell-user@ip-x-x-x-x ~]$ touch test_0byte
[cloudshell-user@ip-x-x-x-x ~]$ ls -l
total 0
-rw-rw-r-- 1 cloudshell-user cloudshell-user 0 Dec 24 05:49 test_0byte


ファイルのフルパスを確認します。

[cloudshell-user@ip-x-x-x-x ~]$ echo "`pwd`/`ls -1`"
/home/cloudshell-user/test_0byte


ActionsタブからDownload fileをクリックします。


ファイルのフルパスを入力し、Downloadをクリックします。


以下のようなエラーが出てファイルがダウンロードできません。

Unable to download file. Check file name and path and try again. System message: Forbidden.

番外編:0バイトのファイルをアップロードしてみた

ダウンロードができないならアップロードはどうなんだろう?と思ったので、そっちも試してみました。

まず、ローカルPCにファイルサイズが0バイトのファイルを準備します。 今回は比較のために0バイトではないファイルも準備しています。

% ls -l
total 8
-rw-r--r--@ 1 ashisan  staff  0 12 21 10:31 test_0byte
-rw-r--r--  1 ashisan  staff  2 12 21 10:31 test_2byte


CloudShellを起動します。


ActionsのUpload fileから「test_0byte」ファイルをアップロードします。


「test_0byte」ファイルをアップロードします。


Uploadは成功します。


しかし、ご覧の通り、ファイルサイズが0ではなく243になっていました。


[cloudshell-user@ip-x-x-x-x ~]$ ls -l
total 4
-rw-rw-r-- 1 cloudshell-user cloudshell-user 243 Dec 21 01:47 test_0byte


ファイルの中身を確認すると、AccessDenied というエラーが追記されていることが確認できます。

[cloudshell-user@ip-x-x-x-x ~]$ cat test_0byte 
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>EN1ECR50MWXF3QAA</RequestId><HostId>SGNBIk/r9SosQ97IdC++fFWbGcXMcLnZjwR/ZulKpHknns0b2YrrZzw14XoMnnvzItxBvdQzR4k=</HostId></Error>[cloudshell-user

最後に

CloudShellを使って0バイトファイルをダウンロードしたりアップロードしたりする場面に出くわしたら役に立ててください(何かを解決する訳ではありませんが)

以上、東京オフィス コンサル部の芦沢(あしさん)でした。