我正在嘗試從一組 S3 預簽名 URL 中獲取檔案名。代碼如下所示:
const input_uri = ["https://s3.us-west-2.amazonaws.com/link.link2.website.com/link-file/item-file/item_id=168cc901-41fe-4994-a5dd-fbcc7bf1d649/date=2021-10-01/item-file-test (2).xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIQ7FVSIUGCQZL7N/20220106/us-west-2/s3/aws4_request&X-Amz-Date=20220106T072037Z&X-Amz-Expires=14400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJj//////////wEaCXVzLXdlc3QtMiJHMEUCIQD8zcE7Dk0NBD2F/r9hyTzZop0+eJ+nQAthpBO3OaGR7AIgI03YGJOTcNzQ79JjZYQvI4HD4A8hKNC5Edq/SXiMZTEqugIIoP//////////ARADGgwyMjQ0NNpe7sy2dtEb+toeBydBYt+5PfH6o1ISCeGe6WfuUaFQZEM0Yl2AUGhGb06S8dTDEsNqOBjqaAadtJx31fGUhIHkaE21M+JffVKmz9XXYeGx2MmpllUzCUbD7vEBM+KxJs5XQ+iZs5sslLFdfjMaWbrFYgUmMLX6fz4HXABR6zFIBH/iIvtijgX4dkXHUWssRHZD96Qo2ATHWVhM/xW4ut1LkLJt1c9U44L9eofZ2Zwp5vLyEIem6c2Nmwx0eo4uc2G+k5CTMF8WfWYRMYPHpksM=&X-Amz-SignedHeaders=host&response-content-disposition=&X-Amz-Signature=2395e814f4d8daa5ae86f9b40b76c16f042757008c595fc1c","https://s3.us-west-2.amazonaws.com/link.link2.website.com/link-file/item-file/item_id=168cc901-41fe-4994-a5dd-fbcc7bf1d649/date=2021-10-01/item-file-test (2).xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIQ7FVSIUGCQZL7N/20220106/us-west-2/s3/aws4_request&X-Amz-Date=20220106T072037Z&X-Amz-Expires=14400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJj//////////wEaCXVzLXdlc3QtMiJHMEUCIQD8zcE7Dk0NBD2F/r9hyTzZop0+eJ+nQAthpBO3OaGR7AIgI03YGJOTcNzQ79JjZYQvI4HD4A8hKNC5Edq/SXiMZTEqugIIoP//////////ARADGgwyMjQ0NNpe7sy2dtEb+toeBydBYt+5PfH6o1ISCeGe6WfuUaFQZEM0Yl2AUGhGb06S8dTDEsNqOBjqaAadtJx31fGUhIHkaE21M+JffVKmz9XXYeGx2MmpllUzCUbD7vEBM+KxJs5XQ+iZs5sslLFdfjMaWbrFYgUmMLX6fz4HXABR6zFIBH/iIvtijgX4dkXHUWssRHZD96Qo2ATHWVhM/xW4ut1LkLJt1c9U44L9eofZ2Zwp5vLyEIem6c2Nmwx0eo4uc2G+k5CTMF8WfWYRMYPHpksM=&X-Amz-SignedHeaders=host&response-content-disposition=&X-Amz-Signature=2395e814f4d8daa5ae86f9b40b76c16f042757008c595fc1c","https://s3.us-west-2.amazonaws.com/link.link2.website.com/link-file/item-file/item_id=168cc901-41fe-4994-a5dd-fbcc7bf1d649/date=2021-10-01/item-file-test (2).xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIQ7FVSIUGCQZL7N/20220106/us-west-2/s3/aws4_request&X-Amz-Date=20220106T072037Z&X-Amz-Expires=14400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJj//////////wEaCXVzLXdlc3QtMiJHMEUCIQD8zcE7Dk0NBD2F/r9hyTzZop0+eJ+nQAthpBO3OaGR7AIgI03YGJOTcNzQ79JjZYQvI4HD4A8hKNC5Edq/SXiMZTEqugIIoP//////////ARADGgwyMjQ0NNpe7sy2dtEb+toeBydBYt+5PfH6o1ISCeGe6WfuUaFQZEM0Yl2AUGhGb06S8dTDEsNqOBjqaAadtJx31fGUhIHkaE21M+JffVKmz9XXYeGx2MmpllUzCUbD7vEBM+KxJs5XQ+iZs5sslLFdfjMaWbrFYgUmMLX6fz4HXABR6zFIBH/iIvtijgX4dkXHUWssRHZD96Qo2ATHWVhM/xW4ut1LkLJt1c9U44L9eofZ2Zwp5vLyEIem6c2Nmwx0eo4uc2G+k5CTMF8WfWYRMYPHpksM=&X-Amz-SignedHeaders=host&response-content-disposition=&X-Amz-Signature=2395e814f4d8daa5ae86f9b40b76c16f042757008c595fc1c"];
const encoded_filename = input_uri.replace(/^.*\/([^/] ?)\?.*$/, '$1');
const plain_filename = decodeURI(encoded_filename);
console.log(plain_filename);
但是我收到一條錯誤訊息,說Uncaught (in promise) TypeError: input_uri.replace is not a function.知道我的代碼有什么問題嗎?任何建議都會有所幫助!
uj5u.com熱心網友回復:
input_uri是一個包含一個字串元素的陣列(因為您將它包裝在[]s 中)。
.replace 是字串本身可用的方法,而不是陣列。
因此,您需要擺脫陣列大括號,或者input_uri[0].replace(..根據您的需要執行類似的操作。
uj5u.com熱心網友回復:
回圈遍歷陣列獲取檔案名,RegEx 用于 strings
const input_uri = ["https://s3.us-west-2.amazonaws.com/link.link2.website.com/link-file/item-file/item_id=168cc901-41fe-4994-a5dd-fbcc7bf1d649/date=2021-10-01/item-file-test (2).xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIQ7FVSIUGCQZL7N/20220106/us-west-2/s3/aws4_request&X-Amz-Date=20220106T072037Z&X-Amz-Expires=14400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJj//////////wEaCXVzLXdlc3QtMiJHMEUCIQD8zcE7Dk0NBD2F/r9hyTzZop0+eJ+nQAthpBO3OaGR7AIgI03YGJOTcNzQ79JjZYQvI4HD4A8hKNC5Edq/SXiMZTEqugIIoP//////////ARADGgwyMjQ0NNpe7sy2dtEb+toeBydBYt+5PfH6o1ISCeGe6WfuUaFQZEM0Yl2AUGhGb06S8dTDEsNqOBjqaAadtJx31fGUhIHkaE21M+JffVKmz9XXYeGx2MmpllUzCUbD7vEBM+KxJs5XQ+iZs5sslLFdfjMaWbrFYgUmMLX6fz4HXABR6zFIBH/iIvtijgX4dkXHUWssRHZD96Qo2ATHWVhM/xW4ut1LkLJt1c9U44L9eofZ2Zwp5vLyEIem6c2Nmwx0eo4uc2G+k5CTMF8WfWYRMYPHpksM=&X-Amz-SignedHeaders=host&response-content-disposition=&X-Amz-Signature=2395e814f4d8daa5ae86f9b40b76c16f042757008c595fc1c", "https://s3.us-west-2.amazonaws.com/link.link2.website.com/link-file/item-file/item_id=168cc901-41fe-4994-a5dd-fbcc7bf1d649/date=2021-10-01/item-file-test (2).xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIQ7FVSIUGCQZL7N/20220106/us-west-2/s3/aws4_request&X-Amz-Date=20220106T072037Z&X-Amz-Expires=14400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJj//////////wEaCXVzLXdlc3QtMiJHMEUCIQD8zcE7Dk0NBD2F/r9hyTzZop0+eJ+nQAthpBO3OaGR7AIgI03YGJOTcNzQ79JjZYQvI4HD4A8hKNC5Edq/SXiMZTEqugIIoP//////////ARADGgwyMjQ0NNpe7sy2dtEb+toeBydBYt+5PfH6o1ISCeGe6WfuUaFQZEM0Yl2AUGhGb06S8dTDEsNqOBjqaAadtJx31fGUhIHkaE21M+JffVKmz9XXYeGx2MmpllUzCUbD7vEBM+KxJs5XQ+iZs5sslLFdfjMaWbrFYgUmMLX6fz4HXABR6zFIBH/iIvtijgX4dkXHUWssRHZD96Qo2ATHWVhM/xW4ut1LkLJt1c9U44L9eofZ2Zwp5vLyEIem6c2Nmwx0eo4uc2G+k5CTMF8WfWYRMYPHpksM=&X-Amz-SignedHeaders=host&response-content-disposition=&X-Amz-Signature=2395e814f4d8daa5ae86f9b40b76c16f042757008c595fc1c", "https://s3.us-west-2.amazonaws.com/link.link2.website.com/link-file/item-file/item_id=168cc901-41fe-4994-a5dd-fbcc7bf1d649/date=2021-10-01/item-file-test (2).xlsx?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIATIQ7FVSIUGCQZL7N/20220106/us-west-2/s3/aws4_request&X-Amz-Date=20220106T072037Z&X-Amz-Expires=14400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJj//////////wEaCXVzLXdlc3QtMiJHMEUCIQD8zcE7Dk0NBD2F/r9hyTzZop0+eJ+nQAthpBO3OaGR7AIgI03YGJOTcNzQ79JjZYQvI4HD4A8hKNC5Edq/SXiMZTEqugIIoP//////////ARADGgwyMjQ0NNpe7sy2dtEb+toeBydBYt+5PfH6o1ISCeGe6WfuUaFQZEM0Yl2AUGhGb06S8dTDEsNqOBjqaAadtJx31fGUhIHkaE21M+JffVKmz9XXYeGx2MmpllUzCUbD7vEBM+KxJs5XQ+iZs5sslLFdfjMaWbrFYgUmMLX6fz4HXABR6zFIBH/iIvtijgX4dkXHUWssRHZD96Qo2ATHWVhM/xW4ut1LkLJt1c9U44L9eofZ2Zwp5vLyEIem6c2Nmwx0eo4uc2G+k5CTMF8WfWYRMYPHpksM=&X-Amz-SignedHeaders=host&response-content-disposition=&X-Amz-Signature=2395e814f4d8daa5ae86f9b40b76c16f042757008c595fc1c"];
input_uri.forEach(uri => {
const encoded_filename = uri.replace(/^.*\/([^/] ?)\?.*$/, '$1');
const plain_filename = decodeURI(encoded_filename);
console.log(plain_filename);
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/407178.html
標籤:
