Qiita / esa.io / DocBase / GitHub Issues をアップローダの視点から徹底比較

作業手順を説明したGIF画像を共有するためにURLがほしかったので、手軽なアップローダを探そうとも思ったのですが、[こちらの記事](http://akiyoko.hatenablog.jp/entry/2016/08/30/051708)を思い出して GitHub Issue で済ませることができました。

そこで、アップローダとして情報共有サービスの**エディタ画面**を利用する場合、どのサービスがよいのでしょうか。
気になったので、小さなデータを作成して確認してみました。

## アップロードできる拡張子一覧[^when]

[^when]: 2016年10月26日現在

| | Qiita | esa.io | DocBase | GitHub Issue |
| --- | :---: | :---: | :---: | :---: |
| jpg | ◎ | ◎ | ◎ | ◎ |
| png | ◎ | ◎ | ◎ | ◎ |
| gif | ◎ | ◎ | ◎ | ◎ |
| セル貼り付け<br> (Excel / Numbers) | ◎ | ◎ | ◎ | ◎ |
| pdf | × | ◯ | ◯ | △ |
| ppt | × | △ | △ | × |
| pptx | × | △ | △ | △ |
| xls | × | △ | △ | × |
| xlsx | × | △ | △ | △ |
| doc | × | △ | △ | × |
| docx | × | △ | △ | △ |
| exe | × | △ | △ | × |
| zip | × | △ | △ | △ |
| psd | × | △ | △ | × |
| ai | × | △ | △ | × |
| mp3 | × | ◎ | ◯ | × |
| mp4 | × | ◎ | ◯ | × |
| mov | × | △ | △ | × |
| txt | × | ◯ | ◯ | △ |
| html | × | ◯ | ◯ | × |
| css | × | ◯ | ◯ | × |
| js | × | ◯ | ◯ | × |
| ico | × | ◯ | ◯ | × |

◎ : プレビュー画面に表示される
◯ : ブラウザで確認できる
△ : ダウンロードされる
× : アップロードできない

## アップロードされるパス

次にアップロードされるパスです。
どのサービスも、画像とそれ以外で別のパスになっています[^path]。

[^path]: 私がアップロードを試したときに確認したパスですので、リージョンや数字の桁数は変わるかもしれません

### Qiita

**JPG/PNG/GIF/セル**
`https://qiita-image-store.s3.amazonaws.com/<数字1桁>/<数字4桁>/<ランダム36桁>.<拡張子>`

### esa.io

**JPG/PNG/GIF/セル**
`https://img.esa.io/uploads/production/attachments/<数字4桁>/<年4桁>/<月2桁>/<日2桁>/<数字3桁>/<ランダム36桁>.<拡張子>`

**MP3/MP4/それ以外**
`https://esa-storage-tokyo.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/<数字4桁>/<年4桁>/<月2桁>/<日2桁>/<数字3桁>/<ランダム36桁>.<拡張子>`

### DocBase

**JPG/PNG/GIF/セル**
`https://image.docbase.io/uploads/<ランダム36桁>.<拡張子>`

**それ以外**
`https://docbase.io/file_attachments/<連番6桁?>`

### GitHub

**JPG/PNG/GIF/セル**
`https://cloud.githubusercontent.com/assets/<数字7桁>/<数字8桁>/<ランダム36桁>.<拡張子>`

**それ以外**
`https://github.com/<所有者>/<リポジトリ名>/files/<数字6桁>/<ファイル名>.<拡張子>`

## 感想

### 全般

注意点として、アップロードしたデータは基本的に削除することができません。
そのため URL は慎重に管理する必要があります。

DocBase は画像も資料もログインしているユーザしか閲覧することができないため、セキュアで、URLも短くなっています。
esa.io は DocBase と同様に『esaにログイン中のみ添付ファイルへのアクセスを可能にする』設定もあり、アップロードされたファイルの一覧画面からデータを削除することもできます。

エクセルのセルをコピーして貼り付けたところ、すべてのサービスで~~色情報を保持したままPNG画像に変換されました~~[^thanks]クリップボードの画像を貼り付けることができました。
これも便利そうです。

[^thanks]: @kimama1997 さんコメントありがとう！

![paste_cell.gif](https://qiita-image-store.s3.amazonaws.com/0/6558/e91427bf-adee-2478-f94f-0b56126a9dc2.gif)

### Qiita

<img width="1250" alt="qiita.png" src="https://qiita-image-store.s3.amazonaws.com/0/6558/50f20e5d-6ce8-59b2-ccd0-195e8fef9812.png">

- 最大アップロードサイズ: 10MB
- エラー時の文言: Cannot read property 'name' of undefined

ドキュメント共有というより、エンジニア向けのコード共有サービスと捉えればPDFのアップロードはできなくてもよいと思いました。
Qiita:Team も同様にPDFのアップロードができないため、PDFを共有する必要があれば、別に管理をする必要があります。

### esa.io

<img width="1247" alt="esa.png" src="https://qiita-image-store.s3.amazonaws.com/0/6558/735566ad-5ae1-5e41-74e9-1f3dfc402f36.png">

- 最大アップロードサイズ: ~~5MB~~[^esa+]10MB (〜 50MB\)[^esa_size]
- エラー時の文言: File is too big (#.#MiB). Max filesize: 10MiB.

[^esa+]: [最大アップロードサイズの変更](https://docs.esa.io/posts/197)をしていただき(?)ました！
[^esa_size]: [添付ファイル設定](https://docs.esa.io/posts/197)によって上下します

スライダー機能も早くから実装されていたほど、機能は随時追加されています。
mp3, mp4 がプレビューで再生できるのも驚きました。
最近は[UML記法にも対応](https://docs.esa.io/posts/196)したようです。

※追記: 記事を書きました。
[esa\.ioで簡単に図を書きたい（UML記法） \- Qiita](http://qiita.com/usagizmo/items/a3809d59e57512a30e08)

html, css, js, ico, 画像 をブラウザで確認することができるので、頑張れば[静的サイトの運用](https://esa-storage-tokyo.s3-ap-northeast-1.amazonaws.com/uploads/production/attachments/3517/2016/10/26/705/fc2f774f-7e2b-4130-8193-07289f5ea839.html)ができそうです。笑


~~最大アップロードサイズでよくPDFが引っかかってしまう[^compress]のですが、それを除けば~~[^esa+]一番使いやすいサービスです。

[^compress]: そのおかげで [プレビューを利用したPDFの圧縮方法](http://inforati.jp/apple/mac-tips-techniques/multimedia-hints/how-to-compress-a-pdf-file-with-mac-preview-app.html) を覚えました

### DocBase

<img width="1214" alt="docbase.png" src="https://qiita-image-store.s3.amazonaws.com/0/6558/8490633d-f842-ddb9-1dc7-79909480a09f.png">

- 最大アップロードサイズ: 10MB (画像) / 100MB (ファイル)
- エラー時の文言: Images of over 10 MB and files over 100 MB cannot be uploaded

グループ単位で記事を管理するのがとても快適そうです。
GUI もすっきりまとまっており、エンジニアではない方も落ち着いて記事が書けると思います。

プレビューに表示されるアイコンがかわいい。
<img width="157" alt="docbaseicons.png" src="https://qiita-image-store.s3.amazonaws.com/0/6558/3d303785-8c1f-4255-9c50-4991176c631f.png">

### GitHub

<img width="1005" alt="github.png" src="https://qiita-image-store.s3.amazonaws.com/0/6558/752c5310-03f4-faf0-e26b-8c7309f454e3.png">

- 最大アップロードサイズ: 10MB
- エラー時の文言: Yowza, that’s a big file. Choose Files Try again with a file smaller than 10MB.

GitHub は PDF のファイル名を変更せずにアップロードできるため、ダウンロードをして再度利用する場合には便利です。その他のサービスではランダムなファイル名になってしまうので。
Issues はドキュメント共有ではなく課題管理のため、Wiki と合わせてプロジェクトを進めていきましょう。

## おわりに

最終的にはアップローダどうこうは関係なくなってしまいました。

話を戻しますと、Qiita は対応拡張子が少なく、DocBase はログインしているユーザしか閲覧することができない。
GitHub は対応拡張子とアップロードするリポジトリに注意しなければならないので、アップローダとしてはデータの個別削除もできる esa.io を利用しましょう！

こちらからは以上です。