

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 批次處理小型檔案，以改善 Snowball Edge 的資料傳輸效能
<a name="batching-small-files"></a>

每個複製操作由於加密而有一些額外負荷。若要加速將小型檔案傳輸至 AWS Snowball 邊緣 裝置的程序，您可以在單一封存中將其批次處理在一起。當您將檔案批次在一起時，如果它們以其中一個支援的封存格式批次處理，則可以在它們匯入 Amazon S3 時自動擷取它們。

通常，應該會將小於或等於 1 MB 的檔案納入批次中。沒有強制限制您可以在批次中具有的檔案數目，但建議您將批次限制為大約 10,000 個檔案。批次中有超過 100，000 個檔案會影響這些檔案在您傳回裝置後匯入 Amazon S3 的速度。我們建議每個批次的總大小不要超過 100 GB。

批次處理檔案是一種您可以管理的手動程序。批次處理檔案後，請使用 命令搭配 `--metadata snowball-auto-extract=true`選項， AWS CLI `cp`將檔案傳輸至 Snowball Edge 裝置。指定 會在資料匯入 Amazon S3 時`snowball-auto-extract=true`自動擷取封存檔案的內容，只要批次檔案的大小不超過 100 GB。

**注意**  
匯入 Amazon S3 時，不會擷取任何大於 100 GB 的批次。

**批次處理小型檔案**

1. 決定您想要以哪種格式批次處理小型檔案。自動解壓縮功能支援 `TAR`、`ZIP` 和 `tar.gz` 格式。

1. 識別您想要同時批次處理的小型檔案，包括其大小和您要同時批次處理的檔案數目。

1. 在命令列將檔案批次處理，如下列範例所示。
   + 對於 Linux，您可以在用來將檔案傳輸至裝置的相同命令列中批次處理檔案。

     ```
     tar -cf - /Logs/April | aws s3 cp - s3://amzn-s3-demo-bucket/batch01.tar --metadata snowball-auto-extract=true --endpoint http://192.0.2.0:8080
     ```
**注意**  
或者，可以使用您選擇的封存公用程式，以批次方式將檔案存入一或多個大型封存檔中。不過，在您將封存轉移至 Snowball Edge 之前，此方法需要額外的本機儲存來儲存封存。
   + 對於 Windows，當所有檔案都位於執行命令的相同目錄中時，請使用下列範例命令來批次處理檔案：

     ```
     7z a -tzip -so "test" | aws s3 cp - s3://amzn-s3-demo-bucket/batch01.zip --metadata snowball-auto-extract=true --endpoint http://192.0.2.0:8080
     ```

     若要從執行命令的不同目錄批次處理檔案，請使用下列範例命令：

     ```
     7z a -tzip -so "test" "c:\temp" | aws s3 cp - s3://amzn-s3-demo-bucket/batch01.zip --metadata snowball-auto-extract=true --endpoint http://10.x.x.x:8080
     ```
**注意**  
對於 Microsoft Windows 2016，tar 無法使用，但您可以從 *Tar for Windows* 網站下載它。  
您可以從 7ZIP 網站下載 7 ZIP。

1. 重複此步驟，直到您已封存所有使用 Snowball Edge 傳輸至 Amazon S3 的小型檔案為止。

1. 將封存的檔案傳輸至 Snowball。如果您想要自動擷取資料，並且使用先前在步驟 1 中提到的其中一種支援的封存格式，請使用 AWS CLI `cp`命令搭配 `--metadata snowball-auto-extract=true`選項。
**注意**  
如果有非封存檔案，請勿使用此命令。

建立封存檔案時，擷取會維護目前的資料結構。這表示如果您建立包含檔案和資料夾的封存檔案，Snowball Edge 將在擷取至 Amazon S3 程序期間重新建立此檔案。

封存檔案會解壓縮在存放於 的相同目錄中，並相應地建置資料夾結構。請記住，複製封存檔案時，請務必設定旗標 `--metadata snowball-auto-extract=true`。否則，Snowball Edge 不會在資料匯入 Amazon S3 時擷取資料。

如果您有 /Logs/April/ 的資料夾結構，其中包含檔案 `a.txt`、 `b.txt`和 ，請使用步驟 3 中的範例`c.txt`。如果此封存檔案放置在 /amzn-s3-demo-bucket/ 的根目錄中，則擷取後資料看起來會如下所示：

```
/amzn-s3-demo-bucket/Logs/April/a.txt
/amzn-s3-demo-bucket/Logs/April/b.txt
/amzn-s3-demo-bucket/Logs/April/c.txt
```



如果封存檔案已放入 /amzn-s3-demo-bucket/Test/，則擷取會如下所示：

```
/amzn-s3-demo-bucket/Test/Logs/April/a.txt
/amzn-s3-demo-bucket/Test/Logs/April/b.txt
/amzn-s3-demo-bucket/Test/Logs/April/c.txt
```