Luchdaich suas Faidhlichean chun an Àrd-ùrlar
Tha mòran ghnìomhan ag iarraidh ort faidhle a thoirt seachad airson an àrd-ùrlar Legalesign a chleachdadh, leithid faidhle airson a chleachdadh mar teamplaid no ìomhaigh airson ainm-sgrìobhadh.
Tha an àrd-ùrlar a’ gabhail riut an faidhle seo a chur anns an fo-chlàr cheart den t-siostam soilleireachaidh againn. Bidh seo a’ sgrùdadh do faidhle airson cùisean tèarainteachd a dh’fhaodadh a bhith ann agus ga phasgadh don àite cheart airson a adhbhar.
Ma tha thu airson sgrìobhainn teamplaid a luchdachadh suas, cleachd an stiùireadh sònraichte Upload a File as a Template an àite sin. Tha an t-sruth sin a’ cleachdadh a-nis an uploadUrl a thig air ais bho createTemplate.
What You'll Learn
Bidh an stiùireadh seo gad stiùireadh tron phròiseas airson faidhlichean a luchdachadh suas gu Legalesign. Na bi dragh ma tha thu ùr do APIs no stòras sgòthan – mìneothaidh sinn gach ceum gu soilleir.
Dè tha Pre-Signed URL?
Tha pre-signed URL coltach ri pass ruigsinneachd sealach. An àite dhut ruigsinneachd maireannach a thoirt don stòradh againn, bheir sinn dhut URL sònraichte a tha:
- Dìreach dligheach airson ùine ghoirid (15 mionaid)
- A’ ceadachadh dhut aon fhaidhle sònraichte a luchdachadh suas a-mhàin
- A’ cumail do fhaidhlichean tèarainte
Smaoinich air mar thicead pàirceadh valet – tha e a’ toirt ruigsinneachd sealach, cuingealaichte airson adhbhar sònraichte.
Dè tha S3?
Is e S3 (Simple Storage Service) stòras faidhle sgòthan Amazon. 'S e an àite anns am bi sinn a’ stòradh do sgrìobhainnean, suaicheantasan, agus faidhlichean eile gu sàbhailte. Chan fheumar dhut eòlas mionaideach air S3 – dìreach faighnich gu bheil e na àite tèarainte airson faidhlichean a stòradh anns an t-sgòth.
Tro chùrsa
Tha pròiseas luchdachaidh suas a’ leantainn nam ceumannan seo:
- Iarr URL luchdachaidh suas pre-signed bhon GraphQL API (iarr cead airson luchdachadh suas)
- Luchdaich suas do fhaidhle gu S3 a’ cleachdadh an URL a bheir iad dhut (cuir am faidhle gu dìreach)
- Tha an àrd-ùrlar a’ pròiseas gu fèin-obrachail agus ag dearbhadh an fhaidhle (seallaidh sinn gur e faidhle tèarainte a th’ ann)
- Glùin an faidhle don àite mu dheireadh (cur sinn e far a bheil e riatanach)
Carson a tha an dà-cheum seo?
Is dòcha gu bheil thu ag iarraidh faighinn a-mach carson nach leig sinn leat dìreach luchdachadh suas gu dìreach. Tha an dà-cheum seo:
- A’ dèanamh cinnteach gu bheil cead agad luchdachadh suas
- A’ cur casg air luchdachadh suas gun chead
- A’ toirt cothrom dhuinn faidhlichean a sgrùdadh airson bhìorasan
- A’ cumail sùil air cò a luchdaich suas dè
Ceum 1: Iarr URL Luchdachaidh Suas
Cleachd an upload query gus URL luchdachaidh suas pre-signed fhaighinn airson do luchdachadh suas (anns a’ chùis seo PDF). Thoir sùil air an stiùireadh dearbhaidh againn airson barrachd fiosrachaidh air mar a thòisicheas tu a’ ruith queries GraphQL. Airson mions details iomlan, faic an upload query reference.
query {
upload(
id: "<BASE64_OBJECT_ID>",
uploadType: TEMPLATE,
extension: "pdf"
) {
url
}
}
Mìneachadh Paramadairean
- id: ID nì ann an Base64 (m.e., ID teamplaid, ID eòlas)
- uploadType: Seòrsa faidhle a tha air a luchdachadh suas (faic gu h-ìosal)
- extension: Leudachadh faidhle (pdf, png, jpg)
Seòrsaichean Luchdachaidh Suas
TEMPLATE- Faidhlichean PDF airson teamplaidean sgrìobhainnLOGO- Ìomhaighean airson suaicheantas duilleag ainm-sgrìobhaidhEMAILLOGO- Ìomhaighean airson suaicheantas post-dATTACHMENT- Fhaidhlichean a bharrachd airson ceangal ri sgrìobhainnean
Faic an UploadType enum airson an liosta iomlan.
Ceum 2: Luchdachadh suas gu S3
Tha an query a’ toirt air ais URL pre-signed. Cuir am faidhle agad chun URL seo a’ cleachdadh iarrtas HTTP PUT:
const response = await fetch(url, {
method: 'PUT',
body: fileData,
headers: {
'Content-Type': 'application/pdf' // or appropriate MIME type
}
});
Ceum 3: Pròiseas Lèirsinneach
Nuair a bhios an luchdachadh suas deiseil, bidh an àrd-ùrlar a’ dèanamh na leanas:
- A’ sganadh an fhaidhle airson bhìorasan agus cunnartan tèarainteachd
- A’ dearbhadh cruth an fhaidhle agus an t-susbaint
- A’ pròiseasadh an fhaidhle (m.e., a’ tarraing tomhasan duilleag airson PDFan)
- A’ gluasad e chun àite stòraidh mu dheireadh le ceadan iomchaidh
Sgrùdadh Pròiseas ann an Fìor-ùine
Ma tha feum agad air fiosrachadh sa bhad às dèidh dhut luchdachadh suas gu S3 a chrìochnachadh, cleachd fo-sgrìobhaidhean GraphQL.
- Bidh tachartasan luchdachaidh a’ tighinn thugad air
subscribeUserFeed - Cleachd iad
category: "upload" - Tha na tachartasan àbhaisteach a’ gabhail a-steach
uploadScanned,uploadTypeChecked,uploadCompleted, agusuploadFailed
Faic Track Upload Progress with Subscriptions.
Eisimpleir Coileanta
- JavaScript
- Python
- C#
import { generateClient } from 'aws-amplify/api';
const uploadFile = async (objectId, file) => {
const client = generateClient();
const extension = file.name.split('.').pop();
// Step 1: Get upload URL
const result = await client.graphql({
query: `
query {
upload(
id: "${objectId}",
uploadType: TEMPLATE,
extension: "${extension}"
) {
url
}
}
`
});
const uploadUrl = result.data.upload.url;
// Step 2: Upload file
const response = await fetch(uploadUrl, {
method: 'PUT',
body: file,
headers: {
'Content-Type': file.type
}
});
if (!response.ok) {
throw new Error('Upload failed');
}
return { success: true };
};
import requests
from gql import gql, Client
from gql.transport.requests import RequestsHTTPTransport
def upload_file(graphql_endpoint, auth_token, object_id, file_path):
extension = file_path.split('.')[-1]
transport = RequestsHTTPTransport(
url=graphql_endpoint,
headers={'Authorization': auth_token}
)
client = Client(transport=transport, fetch_schema_from_transport=True)
query = gql(f'''
query {{
upload(
id: "{object_id}",
uploadType: TEMPLATE,
extension: "{extension}"
) {{
url
}}
}}
''')
result = client.execute(query)
upload_url = result['upload']['url']
with open(file_path, 'rb') as f:
file_data = f.read()
response = requests.put(
upload_url,
data=file_data,
headers={'Content-Type': 'application/pdf'}
)
if response.status_code != 200:
raise Exception('Upload failed')
return {'success': True}
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using GraphQL;
using GraphQL.Client.Http;
using GraphQL.Client.Serializer.Newtonsoft;
public class FileUploader
{
public async Task<bool> UploadFile(string graphqlEndpoint, string authToken,
string objectId, string filePath)
{
var extension = Path.GetExtension(filePath).TrimStart('.');
var graphQLClient = new GraphQLHttpClient(
graphqlEndpoint,
new NewtonsoftJsonSerializer()
);
graphQLClient.HttpClient.DefaultRequestHeaders.Add("Authorization", authToken);
var query = new GraphQLRequest
{
Query = $@"
query {{
upload(
id: ""{objectId}"",
uploadType: TEMPLATE,
extension: ""{extension}""
) {{
url
}}
}}
"
};
var response = await graphQLClient.SendQueryAsync<dynamic>(query);
string uploadUrl = response.Data.upload.url;
using var httpClient = new HttpClient();
var fileBytes = await File.ReadAllBytesAsync(filePath);
var content = new ByteArrayContent(fileBytes);
content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
var uploadResponse = await httpClient.PutAsync(uploadUrl, content);
if (!uploadResponse.IsSuccessStatusCode)
{
throw new Exception("Upload failed");
}
return true;
}
}
Cruth Slighe
Tha faidhlichean a’ leantainn an àbhaist ainmichte seo:
<uploadType>/<userId>/<base64ObjectId>.<extension>
Eisimpleir:
template/usr123abc/dHBsYjQ5YTg5NWQtYWRhMy0xMWYwLWIxZGMtMDY5NzZlZmU0MzIx.pdf
Chan fheum thu an t-slighe seo a chruthachadh leat fhèin – bidh an API ga làimhseachadh gu fèin-obrachail nuair a bheir thu na paramadairean ceart.
Seòrsaichean Fhaidhlichean Taicichte
Teamplaidean
- Faidhlichean PDF a-mhàin
- Meud as motha: 50MB
Suaicheantasan agus Suaicheantasan Post-d
- PNG, JPG, JPEG
- Meud as motha: 5MB
- Tomhasan air an comhairleachadh: 200x200px (suaicheantasan), 600x200px (suaicheantasan post-d)
Ceanglaichean
- PDF, DOC, DOCX, XLS, XLSX, PNG, JPG
- Meud as motha: 25MB
Làimhseachadh Mearachd
- Gun chead: Chan eil an ID nì na chuid den chunntas no den bhuidheann agad
- Leudachadh neo-dligheach: Chan eil an seòrsa faidhle taiceil airson an seòrsa luchdachaidh suas seo
- Faidhle ro mhòr: Tha e a’ dol thairis air an cuingealachadh meud as motha
- Bhìoras air a lorg: Cha do dhearbh an faidhle an sgrùdadh tèarainteachd
Nòtan Tèarainteachd
- Bidh na URLan pre-signed a’ crìochnachadh às dèidh 15 mionaid
- Bidh faidhlichean air an sganadh airson bhìorasan mus tèid an pròiseasadh
- Chan urrainn ach luchd-cleachdaidh le ceadan iomchaidh faidhlichean a luchdachadh suas
- Tha faidhlichean air an sgaradh rè am pròiseasadh anns a’ bhucket clearing
Cleachdaidhean as Fheàrr
- Dèan cinnteach gu bheil thu a’ sgrùdadh meud an fhaidhle mus luchdachadh suas thu
- Cleachd an cruth faidhle ceart
- Làimhsich mearachdan gu socair
- Na cleachd URLan pre-signed a-rithist
- Cum do shònrachaidhean tèarainte — na roinn tòcan dearbhaidh no cuir iad an àite còd an neach-cleachdaidh