Axios ଏକ ଷ୍ଟ୍ରିମ୍ ଫେରାଇଲା। ଫାଇଲ୍ ଏବେ ମଧ୍ୟ ଲେଖାଯାଉଛି।
Node ରେ Axios ସହିତ SOCKS ଏଜେଣ୍ଟ ମାଧ୍ୟମରେ ଡାଉନଲୋଡ୍ କରିବାବେଳେ ନେଟୱର୍କ ପଢ଼ିବା ଏବଂ ଲକ୍ଷ୍ୟସ୍ଥଳରେ ଲେଖିବା ଦୁଇଟିର ଅପେକ୍ଷା କରନ୍ତୁ।
ଯେତେବେଳେ Axios responseType: 'stream' ସହିତ ଏକ Node ଅନୁରୋଧ ସମାଧାନ କରେ, ବଡି ବ୍ୟବହାର ପାଇଁ ପ୍ରସ୍ତୁତ ଥାଏ। ମାତ୍ର ଫାଇଲ୍ ଏବେ ମଧ୍ୟ ସମ୍ପୂର୍ଣ୍ଣ ନୁହେଁ। ଏହାର ଲକ୍ଷ୍ୟସ୍ଥଳକୁ ସ୍ଥାନାନ୍ତରଣ ପାଇଁ ଅପେକ୍ଷା କରନ୍ତୁ:
import { createWriteStream } from 'node:fs';
import { pipeline } from 'node:stream/promises';
const response = await client.get(url, { responseType: 'stream' });
await pipeline(response.data, createWriteStream(partPath));ଏହା ପୂର୍ବରୁ ବିନ୍ୟାସିତ ଏକ କ୍ଲାଏଣ୍ଟ ବ୍ୟବହାର କରେ। ଏହାର ଆଡାପ୍ଟର ଚୟନିତ ପ୍ରକ୍ସି କିମ୍ବା SOCKS ଏଜେଣ୍ଟକୁ ସମର୍ଥନ କରିବା ଆବଶ୍ୟକ; Axios ର ଅନ୍ତର୍ନିହିତ HTTP ପ୍ରକ୍ସି ବିକଳ୍ପ ଏବଂ SOCKS ଏଜେଣ୍ଟ ଅଲଗା ଯନ୍ତ୍ରଣା। URL, ସମୟସୀମା ଏବଂ ବାତିଲ ନୀତି ଆପ୍ଲିକେସନ ଯୋଗାଏ।
ଏହି କାର୍ଯ୍ୟର ମାଲିକାନାରେ ଥିବା ଏକ ଅସ୍ଥାୟୀ ପଥ ବ୍ୟବହାର କରନ୍ତୁ। ଲେଖା ଷ୍ଟ୍ରିମ୍ ସୃଷ୍ଟି କରିବା ପୂର୍ବରୁ ଧକ୍କାକୁ କିପରି ସମ୍ଭାଳିବେ ନିର୍ଣ୍ଣୟ କରନ୍ତୁ, ଯାହାଫଳରେ ବିଫଳତା ପରର ସଫାଇ ଅନ୍ୟର ଫାଇଲ୍ ହଟାଇବ ନାହିଁ। ଉଦ୍ଦେଶ୍ୟପୂର୍ଣ୍ଣ ପୁନଃଆରମ୍ଭ ପାଇଁ ନିଜସ୍ୱ ନୀତି ଦରକାର।
pipeline ପଢ଼ିବା ଓ ଲେଖିବାର ସମନ୍ୱୟ କରେ ଏବଂ ସେମାନଙ୍କ ବିଫଳତା ଜଣାଏ। response.data.pipe(file) ଡାକି ତୁରନ୍ତ ସଫଳତା ଲଗ୍ କଲେ ସେହି ସମ୍ପୂର୍ଣ୍ଣତା ବିନ୍ଦୁ ଛାଡ଼ିଯାଏ। ବୈଧ HTTP ପ୍ରତିକ୍ରିୟା ଆସିବା ପରେ ମଧ୍ୟ ନେଟୱର୍କ ବାଧା କିମ୍ବା ପୂର୍ଣ୍ଣ ଡିସ୍କ ଘଟିପାରେ; ପ୍ରତିକ୍ରିୟାର ସନ୍ଦର୍ଭ ଏବଂ ପ୍ରକ୍ରିୟା ଅଟକାଇଥିବା ତ୍ରୁଟି ରଖନ୍ତୁ।
ଅପେକ୍ଷିତ ପ୍ରକ୍ରିୟା ସଫଳ ହେବା ପରେ, ଆପ୍ଲିକେସନର ଆର୍ଟିଫ୍ୟାକ୍ଟ ଯାଞ୍ଚ ସମ୍ପାଦନ କରନ୍ତୁ ଏବଂ ତାପରେ ଅନ୍ତିମ ନାମ ପ୍ରକାଶ କରନ୍ତୁ। ସମ୍ପୂର୍ଣ୍ଣତା ଅର୍ଥ ଏହି API ଅଧୀନରେ ଷ୍ଟ୍ରିମ୍ ବ୍ୟବହୃତ ଓ ଲିଖିତ ହୋଇଛି, ଏହା ଆଶାକରା ରିଲିଜ୍ କିମ୍ବା ଡକ୍ୟୁମେଣ୍ଟ ନୁହେଁ। ବିଫଳତା କିମ୍ବା ବାତିଲ ସମୟରେ, ଚୟନିତ ପୁନଃଆରମ୍ଭ ନୀତି ଅନୁସାରେ ଆଂଶିକ ଫାଇଲ୍ ରଖନ୍ତୁ କିମ୍ବା ହଟାନ୍ତୁ। ବାତିଲ ସଙ୍କେତ ସମ୍ପୃକ୍ତ ଅନୁରୋଧ ଏବଂ ଷ୍ଟ୍ରିମ୍ କାର୍ଯ୍ୟକଳାପ ଅଟକାଇପାରେ; ମାତ୍ର ଆପ୍ଲିକେସନ ଆଉଟପୁଟ ସହିତ କଣ କରିବ ତାହା ନିର୍ଣ୍ଣୟ କରେ ନାହିଁ।