I am following the tutorial on the following website: https://aps.autodesk.com/en/docs/data/v2/tutorials/upload-file/,, when i used the signed url to upload file .This step went wrong, I don't know where the problem is.(My app's client script code is php. I use the curl fountion to sent the request.)The upload step has a problem and only returns false. There is no other prompt. Then check the upload returns
enter image description here
This is test data:
array (
'jsonapi' =>
array (
'version' => '1.0',
),
'data' =>
array (
'type' => 'objects',
'id' => 'urn:adsk.objects:os.object:wip.dm.emea.2/0ae6c75a-0196-4999-921a-80eee9b1356d.png',
'relationships' =>
array (
'target' =>
array (
'data' =>
array (
'type' => 'folders',
'id' => 'urn:adsk.wipemea:fs.folder:co.h7aVKQsNQ2-SAal7y_DDoA',
),
'links' =>
array (
'related' =>
array (
'href' => 'https://developer.api.autodesk.com/data/v1/projects/b.0ba0f51f-b130-427a-b8cb-4a013982f81c/folders/urn:adsk.wipemea:fs.folder:co.h7aVKQsNQ2-SAal7y_DDoA',
),
),
),
),
),
)
2023-06-29 00:22:23
array (
0 => 'wip.dm.emea.2',
1 => '0ae6c75a-0196-4999-921a-80eee9b1356d.png',
)
2023-06-29 00:22:23
array (
'uploadKey' => 'AQICAHhwdLfJxxjSW2elV4zBsR9a2onNLWfDL3EilPBWyEkdxgGQVHDYw-I8SSvQnwJwBhM5AAABxzCCAcMGCSqGSIb3DQEHBqCCAbQwggGwAgEAMIIBqQYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwDCjvRjf9BYvdITAACARCAggF6fH5QD_36iPGKJa5JqpxeBc3MXuH5z8sb6OUF-ElLHUqYosXbQk1j83nHRt-bGkofxQl_8pfPPAuqYCrVzNCL4UtY6M5T0DtPrs1KHbd0CAEH1sUcmwpe64u4NjCIV5eQnSabsO5dzzrHDnAJY-U89ehaeEnV0oG1-RoobCPWw6fobjdFMvNxB1FFbvgz7P-wvKqENAnXTHIR8kK3OIV83bleC7aQ7Jet1QSmix499x4YTaPQcqWmALcDIIkxZ_DlnxQ4F2SMs3E1Tk6K_rhXFpb0I5p7uSir6KfvdNGeW2ziAoPnIvQt3aFbCiWjuLzWDVQuZ9nIZE_32Q2zSQs9JVoRVgE-982tguKCJut35vmjA26KMwASXd5NkEpuZwpNJtsX30xUA_Nz28S68lLyNmnPCLrQTFC8bNnUFUGLJ15jwCkTiN0YkssBUHBBYP-ad2XW2DtprqwV4ZOAG-tz3-0boqXbBMctU1g2ol-awREKI_xxwHLNTyJ-',
'uploadExpiration' => '2023-07-02T00:00:00Z',
'urlExpiration' => '2023-06-29T00:37:24Z',
'urls' =>
array (
0 => 'https://com-autodesk-oss-prodemea-direct-upload.s3-accelerate.amazonaws.com/21/bd/3a/5d/bucket/wip.dm.emea.2/signed-url-uploads/21bd3a5d-dc5f-4564-8c98-bc80d35d3bca?uploadId=qGGYq4oBKP9NtlH5H8IzjCEK4_u1dn4q6WXc_vD_t1CIF3chDK.0AqiaXrvTeX1Z49UH8e4JuewqcTrbrzKUL6IA0sW5h2aybK.oca_YphxwVZAOVLwreZ4ETh4pi4pPoPqDBxgJx_u8yaWvYMF5tA--&partNumber=1&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEBgaCWV1LXdlc3QtMSJGMEQCIGHqwo1%2F%2Fa5D%2BEOhwoh0N4NHIsW8sWCf1PUg1tsIQNglAiAO8K2ZMs7o7YXQJwt6aPTvLmgRDhsbiNPH8LpFZwEA1Cq5BQiB%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAQaDDExMTgxNzg4NTk2MSIMFENuvBvqaykGZKRUKo0FPdNL6gA8gmQYo38bNNZ5WN29RYbTfxUPRtKDPrpHZREoEZhRxgEQDC7SXZqczlHSaR1lET%2FYa1iolkPr%2BSy4cRGp%2BciCjcCW%2BptgXLlNxh6KLCyQ%2Ftst%2F%2BgOllOI08YtFZkDGkZe%2FTLyvHiz7BK3Ujq7TB95SQD4w2Dl7b7Mnnypsc4Ezq2PT4%2F3ocVVOdkXWciOyefz3ydweUtnWc1pZnNV4oJbm9sajHuQ5C6A5kkNzA5vDYSdvXkBde2zt7v6oE2pdQOsT7wbOV6RRnrbZchN4Of01lXMnJolutdC7BCsfmtemnx%2BdoQnUSsipBibaN3EK5VDAqCcURikUb3eOHDdNa5YH65I4WulkxwtYwl68bCl6ywWeegFVVqqnfPn%2F9V%2FPhLu5fY2w8sUt4YwiO19G%2FXcxCu2u0tqT7POewczj5kffXIsoWxq9uEeq0H%2FlqRzZKSmIXuPEvkGNMwCFmiEzKMCmhtoE3hvaeeKEbVbQhOkgNz4siP6cJ9cdaA3HOl%2B31iqLvP23%2BxGkyvsnCa9%2BK8NU1LygjDyERIcAk6DP4GLLTKSQL%2F8ljuicfWS5bjGRGH9xmoJYO8zgpDN%2Fjv8E2SCaU8a5WVk3tmpAo1xJ1rOiJDSL5GEMRn%2BF%2BVN0mvG3Jhf2ZS1TCRnL0RwUF%2FeEGM1%2BkLUgF%2BlBW9UZxNE26EoiQpFZu3pp2RS8s5Ph2Fcy8jLOXeLbtjLeciMUPmjiQ0dcLuY0Ij1HkyJQgV%2BkRxX9mKtcOaFZR51Nvqvq4fYx1Fhy6%2BvQ9iO0qpknAE%2FLWZuO5fPa0T49YU7eRp475V96eENJipTFD8U6%2FuK2QrRqrm4mV1K6Ja7EJsPvYu39eeXDFvvdAIF7qMw8IrzpAY6sgGswlweetB2Ey9VJFf1sJAH4dLs%2FfHo4CErPO3KJBtMlOGbPCJiPlfKQUZBM9AP0quKRLgq2V%2FvmtD665UIiGSg%2Fa85naOipsNl9UmvTA5zByXkGAq4a0dfBZnma5rGwPK1pQ%2FcSf1D4g0%2BGTlMNPx%2BZISh37kTULOMheNbcoQ5w4KdLc1VKUVkG612%2FkeRh4v12PSqeh%2BlrflNpOehxIw9TrC3KWBTcnNxP0xRQcJ4Cho7&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230629T002224Z&X-Amz-SignedHeaders=host&X-Amz-Expires=899&X-Amz-Credential=ASIARUCG5REEX62EH26M%2F20230629%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Signature=f817e7c3b14b44ca42945b7f40f8775eca31940374843b5db68b5edf4260cad8',
),
)
2023-06-29 00:22:24
false
2023-06-29 00:22:25
array (
'uploadKey' => 'AQICAHhwdLfJxxjSW2elV4zBsR9a2onNLWfDL3EilPBWyEkdxgGQVHDYw-I8SSvQnwJwBhM5AAABxzCCAcMGCSqGSIb3DQEHBqCCAbQwggGwAgEAMIIBqQYJKoZIhvcNAQcBMB4GCWCGSAFlAwQBLjARBAwDCjvRjf9BYvdITAACARCAggF6fH5QD_36iPGKJa5JqpxeBc3MXuH5z8sb6OUF-ElLHUqYosXbQk1j83nHRt-bGkofxQl_8pfPPAuqYCrVzNCL4UtY6M5T0DtPrs1KHbd0CAEH1sUcmwpe64u4NjCIV5eQnSabsO5dzzrHDnAJY-U89ehaeEnV0oG1-RoobCPWw6fobjdFMvNxB1FFbvgz7P-wvKqENAnXTHIR8kK3OIV83bleC7aQ7Jet1QSmix499x4YTaPQcqWmALcDIIkxZ_DlnxQ4F2SMs3E1Tk6K_rhXFpb0I5p7uSir6KfvdNGeW2ziAoPnIvQt3aFbCiWjuLzWDVQuZ9nIZE_32Q2zSQs9JVoRVgE-982tguKCJut35vmjA26KMwASXd5NkEpuZwpNJtsX30xUA_Nz28S68lLyNmnPCLrQTFC8bNnUFUGLJ15jwCkTiN0YkssBUHBBYP-ad2XW2DtprqwV4ZOAG-tz3-0boqXbBMctU1g2ol-awREKI_xxwHLNTyJ-',
'status' => 'error',
'reason' => 'MissingOrInvalidParts',
'parts' =>
array (
0 =>
array (
'part' => 1,
'status' => 'Pending',
),
),
)
2023-06-29 00:22:26
Here is an excerpt of my code for the file upload part:
public static function uploaditem($token, $path_to_upload, $bucket_key, $object_id)
{
$url = "https://developer.api.autodesk.com/oss/v2/buckets/$bucket_key/objects/$object_id";
$mime = mime_content_type($path_to_upload);
$head = [
'Authorization: Bearer ' . $token,
'Content-Type: ' . $mime
];
if (function_exists('curl_file_create')) { // php 5.5+
$cFile = curl_file_create($path_to_upload);
} else { //
$cFile = '@' . realpath($path_to_upload);
}
$post = array('extra_info' => '123456','file_contents'=> $cFile);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, true); // 启用输出头部信息
curl_setopt($curl, CURLOPT_VERBOSE, true); // 启用详细输出
if(!empty($head))curl_setopt($curl, CURLOPT_HTTPHEADER, $head);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_PUT, true);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
Here is an sample of my code for the file upload part:
//The function uploaditem($token, $path_to_upload, $bucket_key, $object_id) takes in parameters that are passed in from the previous step. As you can see from the code returned above, there should be no errors.
public static function uploaditem($token, $path_to_upload, $bucket_key, $object_id)
{
$url = "https://developer.api.autodesk.com/oss/v2/buckets/$bucket_key/objects/$object_id";
$mime = mime_content_type($path_to_upload);
$head = [
'Authorization: Bearer ' . $token,
'Content-Type: ' . $mime
];
if (function_exists('curl_file_create')) { // php 5.5+
$cFile = curl_file_create($path_to_upload);
} else { //
$cFile = '@' . realpath($path_to_upload);
}
$post = array('extra_info' => '123456','file_contents'=> $cFile);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, true); // 启用输出头部信息
curl_setopt($curl, CURLOPT_VERBOSE, true); // 启用详细输出
if(!empty($head))curl_setopt($curl, CURLOPT_HTTPHEADER, $head);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_PUT, true);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
I want to use the Data Management API to Upload a File