يتم تخزين ملفات البيانات المنظَّمة (SDF) التي تم إنشاؤها في ملف ZIP. نزِّل هذا الملف باستخدام القيمة في الحقل response.resourceName من عملية Operation الناجحة باستخدام media.download.
في ما يلي كيفية تنزيل ملف ZIP SDF:
جافا
// Provide the name of the finished sdfdownloadtask operation. String operationName = operation-name; // Provide the path for the output file. String outputFile = output-file; // Retrieve the resource location from the finished operation. Operation operation = service.sdfdownloadtasks().operations().get(operationName).execute(); String fileLocation = operation.getResponse().get("resourceName").toString(); // Configure the Media.download request. Media.Download downloadRequest = service.media().download(fileLocation); // Create output stream for downloaded file. FileOutputStream outStream = new FileOutputStream(outputFile); // Download file. downloadRequest.executeMediaAndDownloadTo(outStream); System.out.printf("File downloaded at %s", outputFile);
Python
# Import the object used for media download. from googleapiclient import http as googleHttp # Provide the name of the successfully completed sdfdownloadtask operation. operation_name = operation-name # Provide the path for the output file. output_path = output-path # Retrieve the completed operation. operation = ( service.sdfdownloadtasks().operations().get(name=operation_name).execute() ) # Retrieve the file location from the operation. file_location = operation["response"]["resourceName"] # Configure the media.download request. download_request = service.media().download_media(resourceName=file_location) # Create output stream for downloaded file. out_stream = io.FileIO(output_path, mode="wb") # Build downloader object. downloader = googleHttp.MediaIoBaseDownload(out_stream, download_request) # Download file in chunks until finished. download_finished = False while download_finished is False: _, download_finished = downloader.next_chunk() print(f"File downloaded at {output_path}.")
PHP
// Provide the name of the finished sdfdownloadtask operation. $operationName = operation-name; // Provide the path for the output file. $outputFile = output-file; try { // Call the API, retrieving the SDF Download Task. $operation = $this->service->sdfdownloadtasks_operations->get( $operationName ); $fileLocation = $operation->getResponse()['resourceName']; $client = $this->service->getClient(); $client->setDefer(true); $request = $this->service->media->download( $fileLocation, array('alt' => 'media') ); // Call the API, getting the generated SDF. $response = $client->execute($request); $responseBody = $response->getBody(); // Writes the downloaded file. If the file already exists, it is // overwritten. file_put_contents($outputFile, $responseBody); $client->setDefer(false); } catch (\Exception $e) { $this->renderError($e); return; } printf('<p>File downloaded at %s</p>', $outputFile);
استخراج الملفات
استخرِج ملفات SDF التي تم إنشاؤها من الملف ZIP. تستخدم ملفات SDF أسماء ملفات عامة تحدّد نوعها. يُطلق على ملف SDF الخاص بالبند الإعلاني الاسم SDF-LineItems.csv.
قد يتضمّن ملف ZIP ملفات "تم تخطّيها" لكل نوع ملف. تحدّد الملفات "المتخطّاة" المراجع غير المضمّنة في SDF. ويتم تسميتها باستخدام اللاحقة -Skipped. تتضمّن هذه الملفات بنية من عمودَين. يحدّد العمود الأول المرجع الذي تم تخطّيه. ويشرح العمود الثاني سبب استبعادها.