---
title: Upload（アップロード）
description: HTTP 経由でのファイルのアップロード。
plugin: upload
i18nReady: true
---

import PluginLinks from '@components/PluginLinks.astro';
import Compatibility from '@components/plugins/Compatibility.astro';

import { Tabs, TabItem, Steps } from '@astrojs/starlight/components';
import CommandTabs from '@components/CommandTabs.astro';
import PluginPermissions from '@components/PluginPermissions.astro';
import TranslationNote from '@components/i18n/TranslationNote.astro';

<TranslationNote lang="ja">

**Plugin 説明内容の英語表記部分について**　Plugin の各章は、原文データからページ内容の一部が自動生成されているため、英語表記のままの部分があります。

</TranslationNote>

<PluginLinks plugin={frontmatter.plugin} />

HTTP 経由でディスクからリモートサーバーにファイルをアップロードします。リモート HTTP サーバーからディスクにファイルをダウンロードします。

## 対応プラットフォーム

<Compatibility plugin={frontmatter.plugin} />

## セットアップ

<Tabs>
	<TabItem label="自動で設定">

    自分のプロジェクトのパッケージ・マネージャーを使用して依存関係を追加します：

    <CommandTabs
    npm="npm run tauri add upload"
    yarn="yarn run tauri add upload"
    pnpm="pnpm tauri add upload"
    deno="deno task tauri add upload"
    bun="bun tauri add upload"
    cargo="cargo tauri add upload"
    />

    </TabItem>
    <TabItem label="手動で設定">

        <Steps>

          1. `src-tauri` フォルダで次のコマンドを実行して、このプラグインを `Cargo.toml` 内のプロジェクトの依存関係に追加します：

              ```sh frame=none
              cargo add tauri-plugin-upload
              ```

          2. 追加したプラグインを初期化するために `lib.rs` を修正します：

              ```rust title="src-tauri/src/lib.rs" ins={4}
              #[cfg_attr(mobile, tauri::mobile_entry_point)]
              pub fn run() {
                tauri::Builder::default()
                  .plugin(tauri_plugin_upload::init())
                    .run(tauri::generate_context!())
                    .expect("error while running tauri application");
              }
              ```

          3. お好みの JavaScript パッケージ・マネージャーを使用して、「JavaScript Guest」バインディングをインストールします：

              <CommandTabs
                  npm="npm install @tauri-apps/plugin-upload"
                  yarn="yarn add @tauri-apps/plugin-upload"
                  pnpm="pnpm add @tauri-apps/plugin-upload"
                  deno="deno add npm:@tauri-apps/plugin-upload"
                  bun="bun add @tauri-apps/plugin-upload"
              />

    	</Steps>
    </TabItem>

</Tabs>

## 使用方法

このプラグインの登録とセットアップのプロセスが完了すると、「JavaScript Guest」バインディングを通じてすべての API にアクセスできるようになります。

以下に、このプラグインを使用してファイルのアップロードおよびダウンロードを行なう事例を示します：

```javascript
import { upload } from '@tauri-apps/plugin-upload';
// `"withGlobalTauri": true` を使用する場合は、
// const { upload } = window.__TAURI__.upload; を使用できます

upload(
  'https://example.com/file-upload',
  './path/to/my/file.txt',
  ({ progress, total }) =>
    console.log(`Uploaded ${progress} of ${total} bytes`), // アップロードの進捗状況に応じて呼び出されるコールバック
  { 'Content-Type': 'text/plain' } // コールバック要求とともに送信するオプションのヘッダー
);
```

```javascript
import { download } from '@tauri-apps/plugin-upload';
// `"withGlobalTauri": true` を使用する場合は、
// const { download } = window.__TAURI__.upload; を使用できます

download(
  'https://example.com/file-download-link',
  './path/to/save/my/file.txt',
  ({ progress, total }) =>
    console.log(`Downloaded ${progress} of ${total} bytes`), // ダウンロードの進捗状況に応じて呼び出されるコールバック
  { 'Content-Type': 'text/plain' } // コールバック要求とともに送信するオプションのヘッダー
);
```

## アクセス権限 Permissions

デフォルトでは、潜在的に危険なプラグイン・コマンドとそのスコープ（有効範囲）はすべてブロックされており、アクセスできません。これらを有効にするには、`capabilities` 設定でアクセス権限を変更する必要があります。

詳細については「[セキュリティ・レベル Capabilities](/ja/security/capabilities/)」の章を参照してください。また、プラグインのアクセス権限を設定するには「[プライグン・アクセス権の使用](/ja/learn/security/using-plugin-permissions/)」の章のステップ・バイ・ステップ・ガイドを参照してください。

```json title="src-tauri/capabilities/default.json" ins={4}
{
  "permissions": [
    ...,
    "upload:default",
  ]
}
```

<PluginPermissions plugin={frontmatter.plugin} />

<div style="text-align: right;">
  【※ この日本語版は、「Feb 22, 2025 英語版」に基づいています】
</div>
