toshiki-notebook/assets/development_rclone-for-r2.md.1704f470.js

56 lines
16 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{_ as s,c as n,o as a,R as l}from"./chunks/framework.ade46834.js";const b=JSON.parse('{"title":"Configure rclone for R2","description":"","frontmatter":{},"headers":[],"relativePath":"development/rclone-for-r2.md","filePath":"development/rclone-for-r2.md","lastUpdated":1686503450000}'),e={name:"development/rclone-for-r2.md"},o=l(`<h1 id="configure-rclone-for-r2" tabindex="-1">Configure rclone for R2 <a class="header-anchor" href="#configure-rclone-for-r2" aria-label="Permalink to &quot;Configure rclone for R2&quot;"></a></h1><p>Example of how to configure <code>rclone</code> to use R2.</p><p>You must <a href="https://developers.cloudflare.com/r2/data-access/s3-api/tokens/" target="_blank" rel="noreferrer">generate an Access Key</a> before getting started. All examples will utilize <code>access_key_id</code> and <code>access_key_secret</code> variables which represent the <strong>Access Key ID</strong> and <strong>Secret Access Key</strong> values you generated.</p><p>With <code>[rclone](https://rclone.org/install/)</code> installed, you may run <code>[rclone config](https://rclone.org/s3/)</code> to configure a new S3 storage provider. You will be prompted with a series of questions for the new prvider details.</p><p>If you have already configured <code>rclone</code> in the past, you may run <code>rclone config file</code> to print the location of your <code>rclone</code> configuration file:</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#268BD2;">$</span><span style="color:#839496;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#839496;"> </span><span style="color:#2AA198;">config</span><span style="color:#839496;"> </span><span style="color:#2AA198;">file</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># Configuration file is stored at:</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># ~/.config/rclone/rclone.conf</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#268BD2;">$</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">config</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">file</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># Configuration file is stored at:</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># ~/.config/rclone/rclone.conf</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br></div></div><p>Then use an editor (<code>nano</code> or <code>vim</code>, for example) to add or edit the new provider. This example assumes you are adding a new <code>r2demo</code> provider:</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#839496;">[r2demo]</span></span>
<span class="line"><span style="color:#268BD2;">type</span><span style="color:#839496;"> </span><span style="color:#2AA198;">=</span><span style="color:#839496;"> </span><span style="color:#2AA198;">s3</span></span>
<span class="line"><span style="color:#268BD2;">provider</span><span style="color:#839496;"> </span><span style="color:#2AA198;">=</span><span style="color:#839496;"> </span><span style="color:#2AA198;">Cloudflare</span></span>
<span class="line"><span style="color:#268BD2;">access_key_id</span><span style="color:#839496;"> </span><span style="color:#2AA198;">=</span><span style="color:#839496;"> </span><span style="color:#2AA198;">abc123</span><span style="color:#839496;"> </span><span style="color:#586E75;font-style:italic;"># Your access_key_id</span></span>
<span class="line"><span style="color:#268BD2;">secret_access_key</span><span style="color:#839496;"> </span><span style="color:#2AA198;">=</span><span style="color:#839496;"> </span><span style="color:#2AA198;">xyz456</span><span style="color:#839496;"> </span><span style="color:#586E75;font-style:italic;"># Your access_key_secret</span></span>
<span class="line"><span style="color:#268BD2;">endpoint</span><span style="color:#839496;"> </span><span style="color:#2AA198;">=</span><span style="color:#839496;"> </span><span style="color:#2AA198;">https://</span><span style="color:#859900;">&lt;</span><span style="color:#2AA198;">accounti</span><span style="color:#839496;">d</span><span style="color:#859900;">&gt;</span><span style="color:#2AA198;">.r2.cloudflarestorage.com</span></span>
<span class="line"><span style="color:#268BD2;">acl</span><span style="color:#839496;"> </span><span style="color:#2AA198;">=</span><span style="color:#839496;"> </span><span style="color:#2AA198;">private</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#657B83;">[r2demo]</span></span>
<span class="line"><span style="color:#268BD2;">type</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">=</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">s3</span></span>
<span class="line"><span style="color:#268BD2;">provider</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">=</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">Cloudflare</span></span>
<span class="line"><span style="color:#268BD2;">access_key_id</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">=</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">abc123</span><span style="color:#657B83;"> </span><span style="color:#93A1A1;font-style:italic;"># Your access_key_id</span></span>
<span class="line"><span style="color:#268BD2;">secret_access_key</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">=</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">xyz456</span><span style="color:#657B83;"> </span><span style="color:#93A1A1;font-style:italic;"># Your access_key_secret</span></span>
<span class="line"><span style="color:#268BD2;">endpoint</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">=</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">https://</span><span style="color:#859900;">&lt;</span><span style="color:#2AA198;">accounti</span><span style="color:#657B83;">d</span><span style="color:#859900;">&gt;</span><span style="color:#2AA198;">.r2.cloudflarestorage.com</span></span>
<span class="line"><span style="color:#268BD2;">acl</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">=</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">private</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><p>You may then use the new <code>rclone</code> provider for any of your normal workflows.</p><h2 id="list-buckets-objects" tabindex="-1">List buckets &amp; objects <a class="header-anchor" href="#list-buckets-objects" aria-label="Permalink to &quot;List buckets &amp; objects&quot;"></a></h2><p>The <a href="https://rclone.org/commands/rclone_tree/" target="_blank" rel="noreferrer">rclone tree</a> command can be used to list the contents of the remote, in this case Cloudflare R2.</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#268BD2;">$</span><span style="color:#839496;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#839496;"> </span><span style="color:#2AA198;">tree</span><span style="color:#839496;"> </span><span style="color:#2AA198;">r2demo:</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># /</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># ├── user-uploads</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># │ └── foobar.png</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># └── my-bucket-name</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># ├── cat.png</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># └── todos.txt</span></span>
<span class="line"></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#839496;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#839496;"> </span><span style="color:#2AA198;">tree</span><span style="color:#839496;"> </span><span style="color:#2AA198;">r2demo:my-bucket-name</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># /</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># ├── cat.png</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># └── todos.txt</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#268BD2;">$</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">tree</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">r2demo:</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># /</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># ├── user-uploads</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># │ └── foobar.png</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># └── my-bucket-name</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># ├── cat.png</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># └── todos.txt</span></span>
<span class="line"></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">tree</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">r2demo:my-bucket-name</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># /</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># ├── cat.png</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># └── todos.txt</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br></div></div><h2 id="upload-and-retrieve-objects" tabindex="-1">Upload and retrieve objects <a class="header-anchor" href="#upload-and-retrieve-objects" aria-label="Permalink to &quot;Upload and retrieve objects&quot;"></a></h2><p>The <a href="https://rclone.org/commands/rclone_copy/" target="_blank" rel="noreferrer">rclone copy</a> command can be used to upload objects to an R2 bucket and vice versa - this allows you to upload files up to the 5 TB maximum object size that R2 supports.</p><div class="language-bash vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki solarized-dark vp-code-dark"><code><span class="line"><span style="color:#586E75;font-style:italic;"># Upload dog.txt to the user-uploads bucket</span></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#839496;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#839496;"> </span><span style="color:#2AA198;">copy</span><span style="color:#839496;"> </span><span style="color:#2AA198;">dog.txt</span><span style="color:#839496;"> </span><span style="color:#2AA198;">r2demo:user-uploads/dog.txt</span></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#839496;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#839496;"> </span><span style="color:#2AA198;">tree</span><span style="color:#839496;"> </span><span style="color:#2AA198;">r2demo:user-uploads</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># /</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># ├── foobar.png</span></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># └── dog.txt</span></span>
<span class="line"></span>
<span class="line"><span style="color:#586E75;font-style:italic;"># Download dog.txt from the user-uploads bucket</span></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#839496;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#839496;"> </span><span style="color:#2AA198;">copy</span><span style="color:#839496;"> </span><span style="color:#2AA198;">r2demo:user-uploads/dog.txt</span><span style="color:#839496;"> </span><span style="color:#2AA198;">dog.txt</span></span></code></pre><pre class="shiki solarized-light vp-code-light"><code><span class="line"><span style="color:#93A1A1;font-style:italic;"># Upload dog.txt to the user-uploads bucket</span></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">copy</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">dog.txt</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">r2demo:user-uploads/dog.txt</span></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">tree</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">r2demo:user-uploads</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># /</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># ├── foobar.png</span></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># └── dog.txt</span></span>
<span class="line"></span>
<span class="line"><span style="color:#93A1A1;font-style:italic;"># Download dog.txt from the user-uploads bucket</span></span>
<span class="line"><span style="color:#268BD2;">$</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">rclone</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">copy</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">r2demo:user-uploads/dog.txt</span><span style="color:#657B83;"> </span><span style="color:#2AA198;">dog.txt</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br></div></div><h2 id="generate-presigned-urls" tabindex="-1">Generate presigned URLs <a class="header-anchor" href="#generate-presigned-urls" aria-label="Permalink to &quot;Generate presigned URLs&quot;"></a></h2><p>You can also generate presigned links which allow you to share public access to a file temporarily using the <a href="https://rclone.org/commands/rclone_link/" target="_blank" rel="noreferrer">rclone link</a> command.</p>`,17),p=[o];function t(r,c,i,y,d,A){return a(),n("div",null,p)}const m=s(e,[["render",t]]);export{b as __pageData,m as default};