Last update at :2024-03-01,Edit by888u
Preparation
- 1. A cloudflare account https://dash.cloudflare.com/
- 2. A B2 account https://www.backblaze.com/b2/cloud-storage.html
- 3.windows software ShareX
Steps
1. Register a B2 account, click to enter B2 Cloud Storage, click Buckets to create a BUcket, set it to public, upload a picture, and record the domain name to be used in the picture below 2. Click App keys, add a new key, select the bucket you just created, record your key, and use it in ShareX later. 3. Open cf, cname the domain name to be remembered in the picture above, and the little clouds will light up. 4. Add a page caching rule. 5. Create a worker, paste the following code, remember to change the values of b2domain and bucket to your own
'use strict'; const b2Domain = 'img.domain.com'; // configure this as per instructions above const b2Bucket = 'bucket-name'; // configure this as per instructions above const b2UrlPath = `/file/${b2Bucket}/`; addEventListener('fetch', event => { return event.respondWith(fileReq(event)); }); // define the file extensions we wish to add basic access control headers to const corsFileTypes = ['png', 'jpg', 'gif', 'jpeg', 'webp']; // backblaze returns some additional headers that are useful for debugging, but unnecessary in production. We can remove these to save some size const removeHeaders = [ 'x-bz-content-sha1', 'x-bz-file-id', 'x-bz-file-name', 'x-bz-info-src_last_modified_millis', 'X-Bz-Upload-Timestamp', 'Expires' ]; const expiration = 31536000; // override browser cache for images - 1 year // define a function we can re-use to fix headers const fixHeaders = function(url, status, headers){ let newHdrs = new Headers(headers); // add basic cors headers for images if(corsFileTypes.includes(url.pathname.split('.').pop())){ newHdrs.set('Access-Control-Allow-Origin', '*'); } // override browser cache for files when 200 if(status === 200){ newHdrs.set('Cache-Control', "public, max-age=" + expiration); }else{ // only cache other things for 5 minutes newHdrs.set('Cache-Control', 'public, max-age=300'); } // set ETag for efficient caching where possible const ETag = newHdrs.get('x-bz-content-sha1') || newHdrs.get('x-bz-info-src_last_modified_millis') || newHdrs.get('x-bz-file-id'); if(ETag){ newHdrs.set('ETag', ETag); } // remove unnecessary headers removeHeaders.forEach(header => { newHdrs.delete(header); }); return newHdrs; }; async function fileReq(event){ const cache = caches.default; // Cloudflare edge caching const url = new URL(event.request.url); if(url.host === b2Domain && !url.pathname.startsWith(b2UrlPath)){ url.pathname = b2UrlPath + url.pathname; } let response = await cache.match(url); // try to find match for this request in the edge cache if(response){ // use cache found on Cloudflare edge. Set X-Worker-Cache header for helpful debug let newHdrs = fixHeaders(url, response.status, response.headers); newHdrs.set('X-Worker-Cache', "true"); return new Response(response.body, { status: response.status, statusText: response.statusText, headers: newHdrs }); } // no cache, fetch image, apply Cloudflare lossless compression response = await fetch(url, {cf: {polish: "lossless"}}); let newHdrs = fixHeaders(url, response.status, response.headers); if(response.status === 200){ response = new Response(response.body, { status: response.status, statusText: response.statusText, headers: newHdrs }); }else{ response = new Response('File not found!', { status: 404 }) } event.waitUntil(cache.put(url, response.clone())); return response; }6. Add routing to workers so that when accessing your domain name, workers will be used first. Access your image files For example, the beginning is https://f000.backblazeb2.com/file/backblaze1489498/wallhaven-md2x8m.jpg You can now access it using https://dlcu.cf/wallhaven-md2x8m.jpg
7. Configure ShareX.
There’s nothing much to say about this, just fill it in on the main page – Target – Upload target settings – Backblaze b2
End
The advantage of this is that it is convenient to upload. You can take a screenshot of the picture and upload it directly in front of the computer, or copy it and upload it directly. Also, you can use your own domain name, and the data can be retrieved by yourself.
Original text: https://www.wangfuchao.com/1290/
Recommended site searches: domain name search, web server, website domain name ip address query, ip proxy address, 1g US virtual host, high defense server, buy high defense server, free asp.net space, virtual space, free php mysql space ,
发表评论